proton
proton接收客户端连接并验证用户。一旦验证失败则关闭链接,验证成功则讲用户的链接信息写入session。
proton会对收到的消息做简单的验证,比如某些必要字段是否存在,然后将消息写入消息队列。
neutron
neutron实现消息转发逻辑,当其确定了某条消息(私聊/群聊/控制消息等)的发送目标时,先从session中检查用户在线状态,
如果用户在线,则通过session中记录的链接信息,调用proton的RPC接口发送。
electron
第三方集成的API接口,接口文档在doc/electron.yml。可将其复制到Swagger查看。
session
session用于保存在线用户的信息,目前的实现使用redis存储。
消息队列
消息队列用于传递消息,当proton收到有效的消息时,将其写入消息队列;再由neutron消费处理。
目前的实现使用rabbitmq。
数据存储
使用MongoDB作为数据库,doc/mongo.js为建立数据表索引的脚本。
SDK
目前的客户端SDK只有Dart版本,可用于Flutter开发。