Skip to content

Latest commit

 

History

History
46 lines (33 loc) · 1.45 KB

event.md

File metadata and controls

46 lines (33 loc) · 1.45 KB

事件推送

Kritor的事件推送由于基于grpc,所以说主动RPC和被动RPC,有不同的消息监听写法。

事件监听示例

主动RPC

接下来将举例一段代码,来说明如何使用主动RPC去实现事件监听。

val channel = ManagedChannelBuilder
    .forAddress("localhost", 8080)
    .usePlaintext()
    .enableRetry() // 允许尝试
    .executor(Dispatchers.IO.asExecutor()) // 使用协程的调度器
    .build()

EventServiceGrpcKt.EventServiceCoroutineStub(channel).registerActiveListener(requestPushEvent { 
    type = EventType.EVENT_TYPE_MESSAGE // 声明需要监听的是消息事件
}).collect { 
// 这里处理消息事件
}

需要注意的是,这里的EventServiceGrpcKt.EventServiceCoroutineStub是一个自动生成的类,它是由proto文件生成的。

如果您开启了鉴权,请在监听的时候提供正确的鉴权ticket

被动RPC

被动Grpc比较复杂,其实更需要一个框架去封装它,点我查看示例

事件大全