good morning!!!!

Skip to content
Snippets Groups Projects
client.go 644 B
Newer Older
a's avatar
wip
a committed
package websocket

import (
Garet Halliday's avatar
Garet Halliday committed
	"gfx.cafe/open/jrpc/contrib/codecs/rdwr"
a's avatar
a committed
	"gfx.cafe/open/jrpc/pkg/codec"
a's avatar
wip
a committed
	"context"

a's avatar
a committed
	"gfx.cafe/open/websocket"
a's avatar
wip
a committed
)

type Client struct {
Garet Halliday's avatar
Garet Halliday committed
	*rdwr.Client
	conn *websocket.Conn
a's avatar
wip
a committed
}

Garet Halliday's avatar
Garet Halliday committed
func newClient(conn *websocket.Conn) (*Client, error) {
	conn.SetReadLimit(WsMessageSizeLimit)
	netConn := websocket.NetConn(context.Background(), conn, websocket.MessageText)
	c := &Client{
a's avatar
a committed
		Client: rdwr.NewClient(netConn, netConn),
Garet Halliday's avatar
Garet Halliday committed
		conn:   conn,
a's avatar
wip
a committed
	}
a's avatar
a committed
	c.SetHandlerPeer(codec.PeerInfo{
		Transport:  "ws",
		RemoteAddr: "",
	})
a's avatar
wip
a committed
	return c, nil
}

func (c *Client) Close() error {
Garet Halliday's avatar
Garet Halliday committed
	return c.conn.Close(websocket.StatusNormalClosure, "")
a's avatar
wip
a committed
}