alt/services/api/internal/socket/server.go
toki 3ee268816b refactor: update API socket handlers and contract parsers
- Add parser map for contract type resolution
- Update socket handlers with new message routing
- Add parser map tests
- Remove outdated code review and plan docs for G07
2026-05-30 19:14:07 +09:00

34 lines
1.1 KiB
Go

package socket
import (
protoSocket "git.toki-labs.com/toki/proto-socket/go"
"nhooyr.io/websocket"
"git.toki-labs.com/toki/alt/services/api/internal/config"
apiContracts "git.toki-labs.com/toki/alt/services/api/internal/contracts"
"git.toki-labs.com/toki/alt/services/api/internal/workerclient"
)
const (
serverName = "alt-api"
serverVersion = "dev"
defaultAltProtocolVersion = "alt.v1"
)
var Worker workerclient.WorkerClient
func NewServer(cfg config.Config) *protoSocket.WsServer {
Worker = workerclient.New(cfg.WorkerSocketURL)
options := protoSocket.WsServerOptions{}
if len(cfg.WSOriginPatterns) > 0 {
options.AcceptOptions = &websocket.AcceptOptions{
OriginPatterns: cfg.WSOriginPatterns,
}
}
server := protoSocket.NewWsServerWithOptions(cfg.Host, cfg.Port, cfg.SocketPath, options, func(conn *websocket.Conn) *protoSocket.WsClient {
return protoSocket.NewWsClient(conn, cfg.HeartbeatIntervalSec, cfg.HeartbeatWaitSec, apiContracts.ParserMap())
})
server.OnClientConnected = registerSessionHandlers
return server
}