conn

package
v0.0.42 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2022 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Package conn - пакет работы с WebSocket соединениями.

Содержит несколько оберток над соединениями, чтобы не дублировать код.

Далее под клиентскими соединениями будут пониматься соединения на стороне клиента, а под серверными - соединения на стороне сервера.

Index

Constants

This section is empty.

Variables

View Source
var (
	HasSubErr      = errors.New("already has sub")
	SubTimeoutErr  = errors.New("sub timeout")
	NoSubErr       = errors.New("sub doesn't exist")
	AuthTimeoutErr = errors.New("auth timeout")
)

Functions

This section is empty.

Types

type AuthRes

type AuthRes struct {
	Resp    proto.Message
	Account *structs.Account
}

AuthRes - результат авторизации

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) Close

func (c *ClientPrivateConn) Close()

Close - закрытие соединения

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) Close

func (c *ClientPublicConn) Close()

Close - закрытие соединения

func (*ClientPublicConn) ReceiveBuf

func (c *ClientPublicConn) ReceiveBuf() chan *ClientPublicMessage

ReceiveBuf - получение буфера входящих сообщений

func (*ClientPublicConn) Sub

func (c *ClientPublicConn) Sub(kind structs.SubKind, req proto.Message) error

Sub - подписка на топик kind

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 NewConn

func NewConn(conn *websocket.Conn, options *opts.Options) (*Conn, error)

NewConn - создание структуры соединения из уже установленного WS-соединения

func UpgradeConn

func UpgradeConn(upgrader *websocket.Upgrader, w http.ResponseWriter, r *http.Request, options *opts.Options) (*Conn, error)

UpgradeConn - апгрейд соединения с помощью апгрейд запроса

func (*Conn) Close

func (c *Conn) Close()

Close - закрытие соединения

func (*Conn) ContentType

func (c *Conn) ContentType() string

ContentType - получение Content-Type, с которым было установлено соединение

func (*Conn) GetSub

func (c *Conn) GetSub(kind structs.SubKind) bool

GetSub - есть ли подписка на топик kind

func (*Conn) IsAlive

func (c *Conn) IsAlive() bool

IsAlive - проверка состояния соединения

func (*Conn) ReceiveBuf

func (c *Conn) ReceiveBuf() chan *ReceivedMessage

ReceiveBuf - получение буфера входящих сообщений

func (*Conn) SendData

func (c *Conn) SendData(msg *SentMessage)

SendData - функция для упорядочивания отправки сообщений

func (*Conn) SendMessage

func (c *Conn) SendMessage(msg proto.Message)

SendMessage - отправка сообщения

func (*Conn) SetSub

func (c *Conn) SetSub(kind structs.SubKind, value bool)

SetSub - есть ли подписка на топик kind

type PrivateMessage

type PrivateMessage struct {
	Conn *ServerPrivateConn
	Data []byte
}

PrivateMessage - сообщение из авторизованного серверного соединения

type PublicMessage

type PublicMessage struct {
	Conn *ServerPublicConn
	Data []byte
}

PublicMessage - сообщение из публичного соединения

type ReceivedMessage

type ReceivedMessage struct {
	Conn *Conn
	Data []byte
}

type SentMessage

type SentMessage struct {
	Data       proto.Message
	IsResponse bool
}

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) Close

func (c *ServerPrivateConn) Close()

Close - закрытие соединения

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) Close

func (c *ServerPublicConn) Close()

Close - закрытие соединения

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 соединения

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL