请选择 进入手机版 | 继续访问电脑版

默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教websocket 能实现 Reactor 模型吗?
场景:基于 Golang 语言的 Gin(Web 框架),接入层使用 WebSocket 协议,还能实现 Reactor 模型吗?
个人理解:
1. 由于 WebSocket 借道 HTTP 协议,Web 框架(或者更底层,比如 HTTP 下层 TCP 的连接入口处?)已经有地方做了 Reactor 监听和分发事件的职责,执行 Handler 路由方法时,不可能再在 Handler 路由方法中做监听和发放
2. TCP 连接之所以能使用 Reactor 模型,是由于直接调用系统函数,在连接进入应用层的入口就接管了,所以可以从它这进行 Reactor 监听和分发事件
请教大佬,我这个理解是否正确?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助 WebSocket
上一篇:求教IM写扩散模式,怎么同步用户数据比较好?下一篇:一种简单保障IM消息可靠性和有序性的实现方案
推荐方案
评论 4
暂时没有需要需要用到Golang,不太了解哦
引用:JackJiang 发表于 2023-04-09 22:22
暂时没有需要需要用到Golang,不太了解哦

今天再次拜读了大佬整理的 IO 线程模型的文章,个人理解是可以实现 Reactor 模型的,具体来说是实现主从 Reactor 多线程模型,具体如下:
1. WebSocket 在 HTTP 的某个 Handler 下进行处理,建立连接,将该连接加入 epoll 进行管理
2. 在 epoll 的后台线程中,epoll_wait 等待事件,然后 dispatch 到不同 handler 进行处理
找到了大佬的实现,给后续的同志指个路:https://github.com/eranyanay/1m-go-websockets.git
引用:肥猫布里奇高 发表于 2023-04-10 02:42
找到了大佬的实现,给后续的同志指个路:https://github.com/eranyanay/1m-go-websockets.git

赞!
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部