20 lines
742 B
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})
|
|
}
|