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

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

小鱼儿老师 全栈工程师
难度中级
时长 1小时10分
学习人数
综合评分9.40
49人评价 查看评价
9.6 内容实用
9.3 简洁易懂
9.3 逻辑清晰

最新回答 / qq_慕田峪2517713
实在看不出有什么问题,兄弟你的理解有误差吧。第一次发送消息不是放在管道里面吗?而且forloop比发送之前休先初始化,此时你发送消息放在管道里面了,而forloop不久读出来了吗??

最赞回答 / zhaojunbo
closeChan 用来等待退出,里面是什么类型的chan其实是无所谓了。sync.Once的目的不是加锁,而是为了只执行一次任务

最新回答 / javasgl
response code :200 , 这是后端代码还是提供的是http 服务,你可能是改了代码后,忘记停止服务重新编译运行了停止原来的http服务,重新编译、运行就行了
WebSocket connection to 'ws://localhost:7777/ws' failed: Error during WebSocket handshake: Unexpected response code: 200,找了半天没有解决的方案

已采纳回答 / 小鱼儿老师
golang的channel资源是可以自动GC掉的,但也不要误认为所有的资源你都不需要主动释放,例如打开的文件或者连接,还是需要主动关闭底层资源的。
不使用 := 和 defer 少了golang的特色

已采纳回答 / 小鱼儿老师
主要是并发模型不同,GO写起来足够简单。
期待下一次的课程,时刻跟踪

已采纳回答 / 小鱼儿老师
目前没有后续websocket的实战课程,同学可以尝试读一下我开源的精简版源码,看一下是否对你有帮助:https://github.com/owenliang/go-push。10月份初会发布一门分布式系统实战项目,同学可以关注一下。

最新回答 / 小鱼儿老师
楼上同学已经解释,我在另外一个问题中也作答了~

最新回答 / 小鱼儿老师
创建一个原子变量,每个连接可以+1分配到一个唯一ID,利用ID做hash取模到某个set中。
最后的课程总结很受用,十分期待老师的实战课程!
只能调用一次完全可以使用go内置的sync.Once,无需造轮子
老师写的go代码语法很c语言啊,看上去总觉得怪怪的
closeChan 改成 chan struct{} 类型更好些,毕竟是无关数据内容,只是关心有无数据
课程须知
1、课程难度属于中级 2、有一定的编程经验,熟悉Golang基本语法以及网络相关基础知识 3、对GO语言、分布式高并发架构感兴趣
老师告诉你能学到什么?
1、了解高并发系统实现的技术难点 2、学习WebSocket协议原理与交互流程 3、掌握GO语言开发WebSocket的重要设计方法 4、了解高并发分布式系统的架构技术难点及解决方案

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消