正常来说空指针异常应该是这样的
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x90 pc=0x63d23d]
goroutine 1 [running]:
github.com/lxzan/gws.(*Conn).emitError(0x7f08a53757c8?, {0x730100?, 0xc0000aa0d8?})
C:/msys64/home/lixizan/Open/gws/conn.go:111 +0x3d
github.com/lxzan/gws.(*Conn).WriteClose(0x0, 0x3e8, {0xc0000a6f27, 0x0, 0x0?})
C:/msys64/home/lixizan/Open/gws/writer.go:23 +0x111
main.main()
C:/msys64/home/lixizan/Open/gws/examples/echo/main.go:12 +0x28
1
lance6716 233 天前 via Android 1
栈是 gws.(*Conn).emitError(0x0, {0x1057966e0, 0xc0282fc558})
说明 receiver 是 nil |
4
lance6716 233 天前 via Android
如果是 issue 一楼说的 wc.conn.WriteClose(1000, []byte{}) 的话,猜测是 wc.conn 是 nil
|
5
kingofzihua 233 天前 1
github.com/lxzan/gws.(*Conn).emitError(0x0, {0x1057966e0, 0xc0282fc558})
第一个参数是 0x0 , 是不是 Conn 已经变为 nil 了? |
7
Nazz OP @kingofzihua 有可能,我尝试去复现下
|
8
0Z03ry75kWg9m0XS 233 天前
看着是 `conn` 没初始化
|
9
wzy44944 232 天前 1
是调用方代码的问题吧,得看下 WebsocketClient 这个代码怎么实现的,应该是这个 close 之前就把 conn 置 nil 了导致的,估计逻辑上有些同步异步的问题
|