为了账号安全,请及时绑定邮箱和手机立即绑定

GO实现千万级WebSocket消息推送服务

小鱼儿老师 全栈工程师
难度中级
时长 1小时10分
学习人数
综合评分9.40
49人评价 查看评价
9.6 内容实用
9.3 简洁易懂
9.3 逻辑清晰
感谢分享,里面的小技巧很受用
内核优化方案, 简单易懂,易实现,老师真棒
https://github.com/owenliang/go-websocket/blob/master/server.go 这代码跑不起来

最新回答 / 慕粉1469320162
不需要关闭,调用Close方法后一个链接对应的所有协程都死了,对于这个链接分配的内存数据都释放了(这里的inchan、outchan也是内存数据)
有点不太准确,发送弹幕1000条/秒指的是一个直播间里的发送速率,并不是每个人都是这个发送速率,所以推送频率不可能是10亿/秒,这样就太夸张了

已采纳回答 / 风中利剑
MQTT适用于网络不稳定、低带宽、高延迟环境下的信息传输,一般应用于物联网场景中的安卓设备和服务器之间的连接,它是一个发布/订阅系统,相比较websocket是有延迟的,而且对于websocket来说,天然对浏览器友好
谢谢小鱼儿老师 受教了
老师讲的真好,作为一个golang小白学到了很多
长连接都不做心跳检测?

最新回答 / Elann
目前代码实现了一个websocket与服务器之间的连接,如果是群发,那么就需要连接池。但是原理都是一样,仅仅是上层需要做一下筛选。
func (conn *Connection) Close() {
conn.wsConn.Close()
conn.inChan = nil
conn.outChan = nil
}

select和closeChan都不用了
这代码我想骂人?
这老师怕是Go语言基础都没学好啊! defer conn.Close()多省事,sync.Once多省事
这老师怕是Go语言基础都没学好啊!
简单易懂,代码逻辑分析的也非常易懂,厉害
课程须知
1、课程难度属于中级 2、有一定的编程经验,熟悉Golang基本语法以及网络相关基础知识 3、对GO语言、分布式高并发架构感兴趣
老师告诉你能学到什么?
1、了解高并发系统实现的技术难点 2、学习WebSocket协议原理与交互流程 3、掌握GO语言开发WebSocket的重要设计方法 4、了解高并发分布式系统的架构技术难点及解决方案

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消