Documentation
¶
Overview ¶
Package openevent 提供事件订阅 SDK
该 SDK 用于接收和处理来自开放平台的事件推送。
快速开始:
client := openevent.NewClient("app_id", "app_secret",
openevent.WithEventHandlerFunc(func(ctx context.Context, e *openevent.Event) error {
log.Printf("收到事件: %s", e.EventCode())
return nil
}),
)
client.Start(context.Background())
使用 Dispatcher 分发事件:
dispatcher := openevent.NewDispatcher().
// 已支持的事件使用 OnV7XXX 方法(类型安全)
OnV7AppChatMessageCreate(func(ctx context.Context, e *openevent.V7AppChatMessageCreateEvent) error {
log.Printf("收到消息: %s", e.Data.Message.Id)
return nil
})
// 其他事件使用 RegisterFunc 方法
dispatcher.RegisterFunc("kso.other.event", func(ctx context.Context, e *openevent.Event) error {
log.Printf("其他事件: %s", e.Data)
return nil
})
client := openevent.NewClient("app_id", "app_secret",
openevent.WithDispatcher(dispatcher),
)
Index ¶
- Constants
- Variables
- type Client
- type ClientError
- type Dispatcher
- type Event
- type Handler
- type HandlerFunc
- type LogLevel
- type Logger
- type Option
- type ServerError
- type V7AppChatCreateEvent
- type V7AppChatMessageCreateEvent
- type V7AppGroupChatDeleteEvent
- type V7AppGroupChatMemberRobotCreateEvent
- type V7AppGroupChatMemberRobotDeleteEvent
- type V7AppGroupChatMemberUserCreateEvent
- type V7AppGroupChatMemberUserDeleteEvent
Constants ¶
const ( // LogLevelDebug 调试级别 LogLevelDebug = core.LogLevelDebug // LogLevelInfo 信息级别 LogLevelInfo = core.LogLevelInfo // LogLevelWarn 警告级别 LogLevelWarn = core.LogLevelWarn // LogLevelError 错误级别 LogLevelError = core.LogLevelError )
Variables ¶
var ( // ErrHandlerNotSet 事件处理器未设置 ErrHandlerNotSet = ws.ErrHandlerNotSet // ErrClientClosed 客户端已关闭 ErrClientClosed = ws.ErrClientClosed // ErrReconnectExceeded 超过最大重连次数 ErrReconnectExceeded = ws.ErrReconnectExceeded )
var NewClient = ws.NewClient
NewClient 创建 WebSocket 客户端
参数:
- appId: 应用 ID
- appSecret: 应用密钥
- opts: 可选配置项
var NewDefaultLogger = core.NewDefaultLogger
NewDefaultLogger 创建默认日志实例
var NewDispatcher = event.NewDispatcher
NewDispatcher 创建事件分发器
var NewNopLogger = core.NewNopLogger
NewNopLogger 创建空日志实例(不输出任何日志)
var WithAckMode = ws.WithAckMode
WithAckMode 设置是否启用 ACK 模式(默认: true) 启用后,事件处理结果会发送给服务端,处理失败时服务端会触发重试
var WithAutoReconnect = ws.WithAutoReconnect
WithAutoReconnect 设置是否开启自动重连(默认: true)
var WithDispatcher = ws.WithDispatcher
WithDispatcher 设置事件分发器
var WithEndpoint = ws.WithEndpoint
WithEndpoint 设置 WebSocket 连接端点 默认使用 SDK 内置端点,一般无需设置
var WithEventHandler = ws.WithEventHandler
WithEventHandler 设置单一事件处理器
var WithEventHandlerFunc = ws.WithEventHandlerFunc
WithEventHandlerFunc 设置函数类型的事件处理器
var WithLogLevel = ws.WithLogLevel
WithLogLevel 设置日志级别
var WithLogger = ws.WithLogger
WithLogger 设置自定义日志实例
var WithPongWait = ws.WithPongWait
WithPongWait 设置等待 Pong 响应超时时间(默认: 90秒)
var WithReconnectBaseInterval = ws.WithReconnectBaseInterval
WithReconnectBaseInterval 设置重连基础间隔(默认: 1秒)
var WithReconnectJitter = ws.WithReconnectJitter
WithReconnectJitter 设置重连抖动系数(默认: 0.2)
var WithReconnectMaxInterval = ws.WithReconnectMaxInterval
WithReconnectMaxInterval 设置重连最大间隔(默认: 60秒)
var WithReconnectMaxRetry = ws.WithReconnectMaxRetry
WithReconnectMaxRetry 设置最大重试次数(默认: -1 无限重试)
var WithReconnectMultiplier = ws.WithReconnectMultiplier
WithReconnectMultiplier 设置重连间隔倍数(默认: 2.0)
var WithWriteWait = ws.WithWriteWait
WithWriteWait 设置写操作超时时间(默认: 10秒)
Functions ¶
This section is empty.
Types ¶
type V7AppChatCreateEvent ¶ added in v1.0.1
type V7AppChatCreateEvent = event.V7AppChatCreateEvent
V7AppChatCreateEvent 应用会话创建事件
type V7AppChatMessageCreateEvent ¶ added in v1.0.1
type V7AppChatMessageCreateEvent = event.V7AppChatMessageCreateEvent
V7AppChatMessageCreateEvent 应用收到消息事件
type V7AppGroupChatDeleteEvent ¶ added in v1.0.1
type V7AppGroupChatDeleteEvent = event.V7AppGroupChatDeleteEvent
V7AppGroupChatDeleteEvent 群聊解散事件
type V7AppGroupChatMemberRobotCreateEvent ¶ added in v1.0.1
type V7AppGroupChatMemberRobotCreateEvent = event.V7AppGroupChatMemberRobotCreateEvent
V7AppGroupChatMemberRobotCreateEvent 机器人进群事件
type V7AppGroupChatMemberRobotDeleteEvent ¶ added in v1.0.1
type V7AppGroupChatMemberRobotDeleteEvent = event.V7AppGroupChatMemberRobotDeleteEvent
V7AppGroupChatMemberRobotDeleteEvent 机器人退群事件
type V7AppGroupChatMemberUserCreateEvent ¶ added in v1.0.1
type V7AppGroupChatMemberUserCreateEvent = event.V7AppGroupChatMemberUserCreateEvent
V7AppGroupChatMemberUserCreateEvent 用户进群事件
type V7AppGroupChatMemberUserDeleteEvent ¶ added in v1.0.1
type V7AppGroupChatMemberUserDeleteEvent = event.V7AppGroupChatMemberUserDeleteEvent
V7AppGroupChatMemberUserDeleteEvent 用户退群事件
Directories
¶
| Path | Synopsis |
|---|---|
|
Package core 提供 SDK 的核心公共组件
|
Package core 提供 SDK 的核心公共组件 |
|
Package event 提供事件处理相关的类型和接口
|
Package event 提供事件处理相关的类型和接口 |
|
model
Package model 定义事件数据模型 该包中的类型定义可通过代码生成器自动生成 类型命名与 xidl 定义保持一致,使用 V7 前缀
|
Package model 定义事件数据模型 该包中的类型定义可通过代码生成器自动生成 类型命名与 xidl 定义保持一致,使用 V7 前缀 |
|
examples
|
|
|
dispatcher
command
Package main 演示使用 Dispatcher 处理事件
|
Package main 演示使用 Dispatcher 处理事件 |
|
simple
command
Package main 演示使用单一 Handler 接收和处理事件
|
Package main 演示使用单一 Handler 接收和处理事件 |
|
internal
|
|
|
kso
Package kso 提供 KSO-1 签名相关工具(内部使用)
|
Package kso 提供 KSO-1 签名相关工具(内部使用) |
|
protocol
Package protocol 定义 WebSocket 协议常量(内部使用)
|
Package protocol 定义 WebSocket 协议常量(内部使用) |
|
Package ws 提供 WebSocket 长连接客户端
|
Package ws 提供 WebSocket 长连接客户端 |