ws

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: GPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrParseError     = &RPCError{Code: -32700, Message: "Parse error"}
	ErrInvalidRequest = &RPCError{Code: -32600, Message: "Invalid Request"}
	ErrMethodNotFound = &RPCError{Code: -32601, Message: "Method not found"}
	ErrInvalidParams  = &RPCError{Code: -32602, Message: "Invalid params"}
	ErrInternalError  = &RPCError{Code: -32603, Message: "Internal error"}
)

预定义的错误类型

Functions

func HTTPHandler

func HTTPHandler(rpc *JSONRPC2) fasthttp.RequestHandler

HTTPHandler 创建 HTTP POST JSON-RPC 处理器

func Handler

Handler 创建 WebSocket JSON-RPC 处理器

func HandlerWithCORS

func HandlerWithCORS(rpc *JSONRPC2) fasthttp.RequestHandler

HandlerWithCORS 创建支持 CORS 的 HTTP POST JSON-RPC 处理器

func IsRPCError

func IsRPCError(err error) bool

IsRPCError 检查错误是否为 RPCError

Types

type JSONRPC2

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

JSONRPC2 JSON-RPC 2.0 处理器

func NewJSONRPC2

func NewJSONRPC2() *JSONRPC2

NewJSONRPC2 创建新的 JSON-RPC 2.0 实例

func (*JSONRPC2) GetRegisteredMethods

func (j *JSONRPC2) GetRegisteredMethods() []string

GetRegisteredMethods 获取所有已注册的方法名(用于调试)

func (*JSONRPC2) HandleMessage

func (j *JSONRPC2) HandleMessage(message []byte) ([]byte, error)

HandleMessage 处理 JSON-RPC 消息

func (*JSONRPC2) RegisterMethod

func (j *JSONRPC2) RegisterMethod(name string, method RPCMethod)

RegisterMethod 注册 RPC 方法

func (*JSONRPC2) RegisterMethodFunc

func (j *JSONRPC2) RegisterMethodFunc(name string, method func(params *fastjson.Value) (interface{}, error))

RegisterMethodFunc 注册 RPC 方法(函数适配器)

func (*JSONRPC2) RegisterObject

func (j *JSONRPC2) RegisterObject(obj interface{}, prefix ...string) error

RegisterObject 注册对象的所有公开方法(仅支持新签名)

func (*JSONRPC2) RegisterObjectMethods

func (j *JSONRPC2) RegisterObjectMethods(obj interface{}, methodNames []string, prefix ...string) error

RegisterObjectMethods 注册对象的指定方法(仅支持新签名)

func (*JSONRPC2) RegisterTestService

func (j *JSONRPC2) RegisterTestService(prefix ...string)

RegisterTestService 注册测试服务到 JSONRPC2 实例

type RPCError

type RPCError struct {
	Code    int         `json:"code"`
	Message string      `json:"message"`
	Data    interface{} `json:"data,omitempty"`
}

RPCError JSON-RPC 错误结构

func GetRPCError

func GetRPCError(err error) *RPCError

GetRPCError 获取 RPCError,如果不是则包装为 InternalError

func NewRPCError

func NewRPCError(code int, message string, data interface{}) *RPCError

NewRPCError 创建新的 RPC 错误

func (*RPCError) Error

func (e *RPCError) Error() string

Error 实现 error 接口

type RPCMethod

type RPCMethod func(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

RPCMethod RPC 方法类型

type TestService

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

TestService 测试服务

func NewTestService

func NewTestService() *TestService

NewTestService 创建测试服务实例

func (*TestService) Add

func (t *TestService) Add(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

Add 加法运算

func (*TestService) BatchDemo

func (t *TestService) BatchDemo(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

BatchDemo 批量操作演示

func (*TestService) Count

func (t *TestService) Count(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

Count 计算参数个数

func (*TestService) Divide

func (t *TestService) Divide(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

Divide 除法运算

func (*TestService) Echo

func (t *TestService) Echo(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

Echo 回显参数

func (*TestService) Multiply

func (t *TestService) Multiply(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

Multiply 乘法运算

func (*TestService) Ping

func (t *TestService) Ping(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

Ping 健康检查

func (*TestService) SlowOperation

func (t *TestService) SlowOperation(arena *fastjson.Arena, params *fastjson.Value) (interface{}, error)

SlowOperation 模拟慢操作

Jump to

Keyboard shortcuts

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