百思不得其解, 为什么 113 这行代码会 panic

200 天前
 Nazz

仅仅是把常量赋值给变量并转化下数据类型, 怎么就空指针 了呢 :(

https://github.com/lxzan/gws/issues/89

求各位提供点思路

3388 次点击
所在节点    Go 编程语言
9 条回复
lance6716
200 天前
栈是 gws.(*Conn).emitError(0x0, {0x1057966e0, 0xc0282fc558})
说明 receiver 是 nil
Nazz
200 天前
@lance6716 但是 113 行没有访问 receiver 啊
lance6716
200 天前
@Nazz 那应该是代码版本与栈不匹配
lance6716
200 天前
如果是 issue 一楼说的 wc.conn.WriteClose(1000, []byte{}) 的话,猜测是 wc.conn 是 nil
kingofzihua
200 天前
github.com/lxzan/gws.(*Conn).emitError(0x0, {0x1057966e0, 0xc0282fc558})

第一个参数是 0x0 , 是不是 Conn 已经变为 nil 了?
Nazz
200 天前
@lance6716 没碰到过错误的堆栈信息😂
版本号是 v1.8.3
Nazz
200 天前
@kingofzihua 有可能,我尝试去复现下
0Z03ry75kWg9m0XS
200 天前
看着是 `conn` 没初始化
wzy44944
200 天前
是调用方代码的问题吧,得看下 WebsocketClient 这个代码怎么实现的,应该是这个 close 之前就把 conn 置 nil 了导致的,估计逻辑上有些同步异步的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1038943

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX