最近在研究websocket的路上愈走愈远了,从开始只是搭建聊天室到单机服务如何支持百万连接。现在是在弄epoll的道路上,经历一路坎坷。这里记录一下心路历程。
问题: epoll这只能运行在linux,有问题没发调试,蛋疼吗?
首先想到装个docker,运行个centos,然后对着docker又是一顿撸。还是没发调试,
gdb 也是可以调试go程序的,问题是,这tm一个项目几百个文件都有了,我gdb怎么断点啊,大概的思路就是从函数调用的地方开始入手,这啥时候是个头啊,简单的还行,果断放弃了
go get -u github.com/go-delve/delve/cmd/dlvgoland配置
Run/Edit configurations
host配置
-p 2345:2345编译调试
exec ./main--dlv listen以后怎么退出来?
不好意思,我也没有找到正确的姿势,万能的方式,新启动一个终端kill掉他,然后会问,docker怎么attach以后还是当前窗口,这个....
看一下我调试解决的bug
报错信息:
hub.Wait()
wait函数的代码:
next一直运行,看一下有连接进来的情况:

syscall.EpollWait