Documentation
¶
Overview ¶
Package conn - пакет работы с WebSocket соединениями.
Содержит несколько оберток над соединениями, чтобы не дублировать код.
Далее под клиентскими соединениями будут пониматься соединения на стороне клиента, а под серверными - соединения на стороне сервера.
Index ¶
- Variables
- type AuthRes
- type ClientPrivateConn
- func NewClientPrivateConnWithBasic(url, login, pass string, options *opts.ClientPrivateConnOptions) (*ClientPrivateConn, error)
- func NewClientPrivateConnWithRequest(url string, data proto.Message, options *opts.ClientPrivateConnOptions) (*ClientPrivateConn, error)
- func NewClientPrivateConnWithToken(url, token string, options *opts.ClientPrivateConnOptions) (*ClientPrivateConn, error)
- type ClientPrivateMessage
- type ClientPublicConn
- type ClientPublicMessage
- type Conn
- func (c *Conn) Close()
- func (c *Conn) ContentType() string
- func (c *Conn) GetSub(kind structs.SubKind) bool
- func (c *Conn) IsAlive() bool
- func (c *Conn) ReceiveBuf() chan *ReceivedMessage
- func (c *Conn) SendData(msg *SentMessage)
- func (c *Conn) SendMessage(msg proto.Message)
- func (c *Conn) SetSub(kind structs.SubKind, value bool)
- type PrivateMessage
- type PublicMessage
- type ReceivedMessage
- type SentMessage
- type ServerPrivateConn
- type ServerPublicConn
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type ClientPrivateConn ¶
type ClientPrivateConn struct { *ClientPublicConn // contains filtered or unexported fields }
ClientPrivateConn - клиентское авторизованное соединение с сервером.
Использовать для клиентских соединений.
Процесс восстановления соединения при отключении будет происходить автоматически, если установлены соответствующие опции. Подписки так же будут восстановлены.
func NewClientPrivateConnWithBasic ¶
func NewClientPrivateConnWithBasic(url, login, pass string, options *opts.ClientPrivateConnOptions) (*ClientPrivateConn, error)
NewClientPrivateConnWithBasic - установка клиентского авторизованного соединения с авторизацией при помощи basic auth
func NewClientPrivateConnWithRequest ¶
func NewClientPrivateConnWithRequest(url string, data proto.Message, options *opts.ClientPrivateConnOptions) (*ClientPrivateConn, error)
NewClientPrivateConnWithRequest - установка клиентского авторизованного соединения с авторизацией при помощи сообщения-запроса
func NewClientPrivateConnWithToken ¶
func NewClientPrivateConnWithToken(url, token string, options *opts.ClientPrivateConnOptions) (*ClientPrivateConn, error)
NewClientPrivateConnWithToken - установка клиентского авторизованного соединения с авторизацией при помощи jwt-авторизации
func (*ClientPrivateConn) Auth ¶
func (c *ClientPrivateConn) Auth() error
Auth - функция отправки запроса авторизации. Нужна при восстановлении соединения и использовании авторизации с помощью сообщения
func (*ClientPrivateConn) AuthConfirm ¶
func (c *ClientPrivateConn) AuthConfirm() error
AuthConfirm - подтверждение успешной авторизации (вызывается обработчиком очереди сообщений, то есть ответственность за вызов лежит на пользователе SDK)
func (*ClientPrivateConn) ReceiveBuf ¶
func (c *ClientPrivateConn) ReceiveBuf() chan *ClientPrivateMessage
ReceiveBuf - получение буфера входящих сообщений
func (*ClientPrivateConn) UpdateHeader ¶
func (c *ClientPrivateConn) UpdateHeader(key, value string)
UpdateHeader - функция изменения заголовка сокета, нужна в сущности ради обновления токена
type ClientPrivateMessage ¶
type ClientPrivateMessage struct { Data []byte Conn *ClientPrivateConn }
ClientPrivateMessage - сообщения, полученные через клиентское авторизованное соединение
type ClientPublicConn ¶
type ClientPublicConn struct { *Conn // contains filtered or unexported fields }
ClientPublicConn - клиентское соединение с сервером без авторизации.
Использовать для клиентских соединений.
Процесс восстановления соединения при отключении будет происходить автоматически, если установлены соответствующие опции. Подписки так же будут восстановлены.
func NewClientConn ¶
func NewClientConn(url string, header http.Header, options *opts.ClientPublicConnOptions) (*ClientPublicConn, error)
NewClientConn - подключение к серверу и создание ClientPublicConn
func (*ClientPublicConn) ReceiveBuf ¶
func (c *ClientPublicConn) ReceiveBuf() chan *ClientPublicMessage
ReceiveBuf - получение буфера входящих сообщений
func (*ClientPublicConn) SubConfirm ¶
func (c *ClientPublicConn) SubConfirm(kind structs.SubKind) error
SubConfirm - подтверждение успешного ответа на подписку (вызывается обработчиком очереди сообщений, то есть ответственность за вызов лежит на пользователе SDK)
type ClientPublicMessage ¶
type ClientPublicMessage struct { Data []byte Conn *ClientPublicConn }
ClientPublicMessage - сообщения, полученные через клиентское публичное соединение
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn - базовый тип соединения
func UpgradeConn ¶
func UpgradeConn(upgrader *websocket.Upgrader, w http.ResponseWriter, r *http.Request, options *opts.Options) (*Conn, error)
UpgradeConn - апгрейд соединения с помощью апгрейд запроса
func (*Conn) ContentType ¶
ContentType - получение Content-Type, с которым было установлено соединение
func (*Conn) ReceiveBuf ¶
func (c *Conn) ReceiveBuf() chan *ReceivedMessage
ReceiveBuf - получение буфера входящих сообщений
func (*Conn) SendData ¶
func (c *Conn) SendData(msg *SentMessage)
SendData - функция для упорядочивания отправки сообщений
func (*Conn) SendMessage ¶
SendMessage - отправка сообщения
type PrivateMessage ¶
type PrivateMessage struct { Conn *ServerPrivateConn Data []byte }
PrivateMessage - сообщение из авторизованного серверного соединения
type PublicMessage ¶
type PublicMessage struct { Conn *ServerPublicConn Data []byte }
PublicMessage - сообщение из публичного соединения
type ReceivedMessage ¶
type SentMessage ¶
type ServerPrivateConn ¶
type ServerPrivateConn struct { *ServerPublicConn Onclose func(*structs.Account, int64) // contains filtered or unexported fields }
ServerPrivateConn - авторизованное серверное соединение с клиентом
func NewServerPrivateConn ¶
func NewServerPrivateConn(conn *websocket.Conn, options *opts.ServerPrivateConnOptions, onauth func(*ServerPrivateConn), onclose func(*structs.Account, int64), reqHeader http.Header) (*ServerPrivateConn, error)
NewServerPrivateConn - создание структуры авторизованного серверного соединения с имеющимся установленным WS-соединением
func UpgradePrivateServerConn ¶
func UpgradePrivateServerConn(upgrader *websocket.Upgrader, w http.ResponseWriter, r *http.Request, options *opts.ServerPrivateConnOptions, onauth func(*ServerPrivateConn), onclose func(*structs.Account, int64)) (*ServerPrivateConn, error)
UpgradePrivateServerConn - апгрейд авторизованного серверного соединения с помощью апгрейд запроса
func (*ServerPrivateConn) AuthConfirm ¶
func (c *ServerPrivateConn) AuthConfirm(res *AuthRes)
AuthConfirm - подтверждение успешной авторизации (вызывается обработчиком очереди сообщений, то есть ответственность за вызов лежит на пользователе SDK)
func (*ServerPrivateConn) GetAccount ¶
func (c *ServerPrivateConn) GetAccount() *structs.Account
GetAccount - получение аккаунта соединения
func (*ServerPrivateConn) ReceiveBuf ¶
func (c *ServerPrivateConn) ReceiveBuf() chan *PrivateMessage
ReceiveBuf - получение буфера входящих сообщений
func (*ServerPrivateConn) SetAccount ¶
func (c *ServerPrivateConn) SetAccount(acc *structs.Account)
SetAccount - привязка аккаунта к соединению
type ServerPublicConn ¶
type ServerPublicConn struct { *Conn Onclose func(int64) // contains filtered or unexported fields }
ServerPublicConn - соединение с клиентом на стороне сервера
func NewServerPublicConn ¶
func NewServerPublicConn(conn *websocket.Conn, options *opts.ServerPublicConnOptions, onclose func(int64), reqHeader http.Header) (*ServerPublicConn, error)
NewServerPublicConn - создание публичного серверного соединения
func UpgradePublicServerConn ¶
func UpgradePublicServerConn(upgrader *websocket.Upgrader, w http.ResponseWriter, r *http.Request, options *opts.ServerPublicConnOptions, onclose func(int64)) (*ServerPublicConn, error)
UpgradePublicServerConn - апгрейд публичного серверного соединения с помощью апгрейд запроса
func (*ServerPublicConn) ConnId ¶
func (c *ServerPublicConn) ConnId() int64
ConnId - получение id соединения
func (*ServerPublicConn) HeaderValue ¶
func (c *ServerPublicConn) HeaderValue(key string) string
HeaderValue - получение значения заголовка запроса апгрейда соединения
func (*ServerPublicConn) ReceiveBuf ¶
func (c *ServerPublicConn) ReceiveBuf() chan *PublicMessage
ReceiveBuf - получение буфера входящих сообщений
func (*ServerPublicConn) SetConnId ¶
func (c *ServerPublicConn) SetConnId(value int64)
SetConnId - изменение id соединения