Socket.D v2.5.9

监听与会话与实体

</> markdown

监听与会话,是 Socket.D 的体验面门,是开发者与之交互的核心接口。

  • Listener 监听器(可双向互听)
接口描述备注
listener::onOpen(session)当打开会话时此时,服务端不能发消息;客户端可以发
listener::onMessage(session, message)当收到消息时
listener::onClose(session)当关闭会话时
listener::onError(session, error)当出错时

服务端 onOpen 时,握手未完成,不能给“当前会话”发消息。具体参考:《协议指令流详解》

  • Session 会话关键接口(可双向互发)
接口描述
session::send(event, entity)->SendStream发送(Qos0)
session::sendAndRequest(event, entity)->RequestStream发送并请求(且,只收一个答复。Qos1)
//要求必须答复一次
session::sendAndRequest(event, entity, timeout)->RequestStream带超时
session::sendAndSubscribe(event, entity)->SubscribeStream发送并订阅(且,接收多个答复)
//在答复结束之前,不限答复次数。
session::sendAndSubscribe(event, entity, timeout)->SubscribeStream带超时
session::reply(from, entity)答复
session::replyEnd(from, entity)答复结束
session::colse()关闭(“本端”不能再发消息,心跳中止)

其中,需要对端答复的接口,有等待答复“超时”的概念(否则,没有超时概念)。

  • Entity 三个内置实例
实体说明备注
EntityDefault默认实体一般用于传二进制数据
FileEntity文件实体(基于 EntityDefault 扩展)一般用于传输文件
StringEntity字符串实体(基于 EntityDefaul 扩展)很常用(比如你发个 json 消息)

也可以基于 Entity 接口定制!