Closed fananchong closed 5 years ago
goim的一个连接貌似只能属于一个room
我看 goim 实现中, comet 并未实现
client ->comet->logic
的消息发送(单播、房间播、广播)。 而是在 logic 上开了 1 个 http 服务,来做消息发送。并做 Benchmark 测试。 因此这里有 2 个疑问:
- 这个 Benchmark 测试与实际生产环境的工作流程相差巨大,是否具有参考价值?
- 为什么回避
client ->comet->logic
的消息发送,直接 logic 上开 http 服务,那岂不是 client 需要连接 logic 与 comet ?
这个, 个人是这么想的, 不知合适不合适:
消息发送与消息接收, 分开的话, 对 bilibili 这类业务场景更好, 大规模部署下, 发消息少, 而看消息的多. 像 bilibili 弹幕, 看的人多, 发的人少.
终端实现简单了, 多数人是看消息, 这样 comet 只要接收消息就可以了, 尤其是流式接收消息, websocket 与 tcp 实现都简单. 而发消息, 需要用户注册后后才能发. 同时, 发消息也需要后台认证( 确认是注册用户) , 过滤一些不良词句.
部署上省事, 开发上也简单.
至于 benchmark 测试, 这里是基础测试, 没什么问题.
我看 goim 实现中, comet 并未实现
client ->comet->logic
的消息发送(单播、房间播、广播)。 而是在 logic 上开了 1 个 http 服务,来做消息发送。并做 Benchmark 测试。 因此这里有 2 个疑问:client ->comet->logic
的消息发送,直接 logic 上开 http 服务,那岂不是 client 需要连接 logic 与 comet ?