discordo/internal/gateway/gateway.go

20 lines
742 B
Go

package gateway
import (
"github.com/ayn2op/arikawa/v3/api"
discordgateway "github.com/ayn2op/arikawa/v3/gateway"
"github.com/ayn2op/arikawa/v3/utils/ws"
"github.com/ayn2op/discordo/internal/http"
)
const gatewayURL = "wss://gateway.discord.gg"
func New(id discordgateway.Identifier) *discordgateway.Gateway {
codec := ws.NewCodec(discordgateway.NewOpUnmarshalers(id.Capabilities))
codec.Headers.Set("Origin", api.BaseEndpoint)
codec.Headers.Set("User-Agent", http.BrowserUserAgent())
conn := ws.NewConnWithDialer(codec, NewDialer())
socket := ws.NewCustomWebsocket(conn, discordgateway.AddGatewayParams(gatewayURL))
return discordgateway.FromWebsocketGateway(ws.NewGateway(socket, nil), discordgateway.State{Identifier: id})
}