wsnode

package
v0.0.0-...-4416a8f Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// 1000:表示正常关闭,意味着连接建立的目的已完成。
	CloseNormalClosure = websocket.CloseNormalClosure

	// 系统定义
	// 1001:表示终端离开,例如服务器关闭或浏览器导航到其他页面。
	CloseGoingAway = websocket.CloseGoingAway
	// 1002:表示终端因为协议错误而关闭连接。
	CloseProtocolError = websocket.CloseProtocolError
	// 1003:表示终端因为接收到不能接受的数据而关闭(例如,只明白文本数据的终端可能发送这个,如果它接收到二进制消息)。
	CloseUnsupportedData = websocket.CloseUnsupportedData

	/////////////////////
	// 以下状态码需要重试(1004-4000)
	// //////////////////
	// 1005:保留。且终端必须不在控制帧里设置作为状态码。它是指定给应用程序而非作为状态码 使用的,用来指示没有状态码出现。
	CloseNoStatusReceived = websocket.CloseNoStatusReceived
	// 1006:同上。保留。且终端必须不在控制帧里设置作为状态码。它是指定给应用程序而非作为状态码使用的,用来指示连接非正常关闭,例如,没有发生或接收到关闭帧。
	CloseAbnormalClosure = websocket.CloseAbnormalClosure
	// 1007:表示终端因为接收到的数据没有消息类型而关闭连接。
	CloseInvalidFramePayloadData = websocket.CloseInvalidFramePayloadData
	// 1008:表示终端因为接收到的消息背离它的政策而关闭连接。这是一个通用的状态码,用在没有更合适的状态码或需要隐藏具体的政策细节时。
	ClosePolicyViolation = websocket.ClosePolicyViolation
	// 1009:表示终端因为接收到的消息太大以至于不能处理而关闭连接。
	CloseMessageTooBig = websocket.CloseMessageTooBig
	// 1010:表示客户端因为想和服务器协商一个或多个扩展,而服务器不在响应消息返回它(扩展)而关闭连接。需要的扩展列表应该出现在关闭帧的/reason/部分。注意,这个状态码不是由服务器使用,因为它会导致WebSocket握手失败。
	CloseMandatoryExtension = websocket.CloseMandatoryExtension
	// 1011:表示服务器因为遇到非预期的情况导致它不能完成请求而关闭连接。
	CloseInternalServerErr = websocket.CloseInternalServerErr
	CloseServiceRestart    = websocket.CloseServiceRestart
	CloseTryAgainLater     = websocket.CloseTryAgainLater
	// 1015:保留,且终端必须不在控制帧里设置作为状态码。它是指定用于应用程序希望用状态码来指示连接因为TLS握手失败而关闭。
	CloseTLSHandshake = websocket.CloseTLSHandshake

	// 以下是对库的错误状态码
	// 3000因网络错误而关闭
	CloseErrConn = 3000
	// 3000网络未打开, 需要重新连接网络
	CloseErrState = 3001
	// 因长时间没收到ping请求而关闭网络
	CloseErrTimeout = 3002

	// 以下是业务错误码不需要重试(4000-5000)
	// 4000因鉴权问题而关闭,需要重新登录服务器,不需进行重试
	CloseErrAuth = 4000
)
View Source
const (
	CALLBACK_PROTO_HTTP  = "http"
	CALLBACK_PROTO_QUIC  = "quic"
	CALLBACK_PROTO_HTTPS = "https"
)

Variables

View Source
var (
	// 通用错误
	ErrNone = NewErrCode(200, "请求成功")

	// 以下错误码会触发关闭连接
	ErrCloseSys     = NewErrCode(CloseInternalServerErr, "系统升级中")
	ErrCloseAuth    = NewErrCode(CloseErrAuth, "您未登录,请登录")
	ErrCloseReLogin = NewErrCode(CloseErrAuth, "您已在其他地方登录,请重登录")
	ErrCloseProto   = NewErrCode(CloseUnsupportedData, "业务协议不正确")
	ErrCloseKick    = NewErrCode(CloseNormalClosure, "您已被踢下线")

	ErrSys      = NewErrCode(5000, "系统升级中")
	ErrAppProto = NewErrCode(5001, "协议不正确")
	ErrLogin    = NewErrCode(5101, "用户上线通知")
	ErrLogout   = NewErrCode(5102, "用户下线通知")
	ErrNotLogin = NewErrCode(5103, "用户不在线")
)
View Source
var (
	ErrHashMatch = errors.New("hash not match")
	ErrNoConn    = errors.New("connetion not found")
)
View Source
var (
	RpcName = etc.Etc.String("cmd/wsnode", "rpc_name")
)

Functions

This section is empty.

Types

type CallBack

type CallBack struct {
	Proto    string // https or quic
	URL      string
	Insecure bool
}

type CreateTopicArg

type CreateTopicArg struct {
	Uid   string
	Topic []string
}

type CreateTopicRet

type CreateTopicRet struct {
}

func CreateTopic

func CreateTopic(arg *CreateTopicArg) (*CreateTopicRet, error)

type DestoryTopicArg

type DestoryTopicArg struct {
	Uid   string
	Topic []string
}

type DestoryTopicRet

type DestoryTopicRet struct {
}

func DestoryTopic

func DestoryTopic(arg *DestoryTopicArg) (*DestoryTopicRet, error)

type ErrCode

type ErrCode struct {
	// contains filtered or unexported fields
}

func NewErrCode

func NewErrCode(code int, msg string) *ErrCode

func (*ErrCode) As

func (e *ErrCode) As(err error) *ErrCode

func (*ErrCode) Code

func (e *ErrCode) Code() int

func (*ErrCode) Msg

func (e *ErrCode) Msg() string

type GetTopicOwnerArg

type GetTopicOwnerArg struct {
	Topic string
}

type GetTopicOwnerRet

type GetTopicOwnerRet struct {
	Uid string
}

func GetTopicOwner

func GetTopicOwner(arg *GetTopicOwnerArg) (*GetTopicOwnerRet, error)

type IsTopicMemberArg

type IsTopicMemberArg struct {
	Uid   string
	Topic string
}

type IsTopicMemberRet

type IsTopicMemberRet struct {
	IsMember bool
}

func IsTopicMember

func IsTopicMember(arg *IsTopicMemberArg) (*IsTopicMemberRet, error)

type JoinTopicArg

type JoinTopicArg struct {
	Uid   string
	Topic []string
}

type JoinTopicRet

type JoinTopicRet struct {
}

func JoinTopic

func JoinTopic(arg *JoinTopicArg) (*JoinTopicRet, error)

type LeaveTopicArg

type LeaveTopicArg struct {
	Uid   string
	Topic []string
}

type LeaveTopicRet

type LeaveTopicRet struct {
}

func LeaveTopic

func LeaveTopic(arg *LeaveTopicArg) (*LeaveTopicRet, error)

type Proto

type Proto struct {
	Sn    string       `json:"sn"`
	Uri   string       `json:"uri"`
	Param jsonp.Params `json:"param,omitempty"`
}

func NewReqProto

func NewReqProto(sn, uri string) *Proto

func NewRespProto

func NewRespProto(req *Proto, code *ErrCode) *Proto

func ParseProto

func ParseProto(data []byte) (*Proto, error)

func (*Proto) Serial

func (r *Proto) Serial() []byte

func (*Proto) String

func (r *Proto) String() string

type PushArg

type PushArg struct {
	Uid  string
	Data *Proto
}

type PushRet

type PushRet struct {
}

func Push

func Push(arg *PushArg) (*PushRet, error)

type RpcService

type RpcService interface {
	// P2P send
	Push(arg *PushArg, ret *PushRet) error

	// create a topic
	CreateTopic(arg *CreateTopicArg, ret *CreateTopicRet) error
	// desctroy a topic
	DestoryTopic(arg *DestoryTopicArg, ret *DestoryTopicRet) error
	// get topic owner
	GetTopicOwner(arg *GetTopicOwnerArg, ret *GetTopicOwnerRet) error
	// is topic member
	IsTopicMember(arg *IsTopicMemberArg, ret *IsTopicMemberRet) error
	// join a topic
	JoinTopic(arg *JoinTopicArg, ret *JoinTopicRet) error
	// leave a topic
	LeaveTopic(arg *LeaveTopicArg, ret *LeaveTopicRet) error
	// send message to a topic
	SendTopic(arg *SendTopicArg, ret *SendTopicRet) error
}

Rpc exported method

type SendTopicArg

type SendTopicArg struct {
	Topic string
	Data  *Proto
}

type SendTopicRet

type SendTopicRet struct {
}

func SendTopic

func SendTopic(arg *SendTopicArg) (*SendTopicRet, error)

type SetCallbackArg

type SetCallbackArg struct {
	Tag string
	Cb  *CallBack
}

type SetCallbackRet

type SetCallbackRet struct {
}

func SetCallback

func SetCallback(arg *SetCallbackArg) (*SetCallbackRet, error)

Jump to

Keyboard shortcuts

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