具体情况如下:
![2NA)G`@Q9@J$]1%DZA]XW1P.png]1
原计划是当客户端注册成功后,服务端返回一个 token 给客户端,同时绑定本次 token 对应的 sid。当有新的消息时,服务端将根据 token 查找 sid,并推送消息。
听起来很容易是吧?但问题便出在这里:无论用何种方法记录 sid,都无法正确推送消息,客户端毫无反应。在我试过各种解决方案后,我不得不放弃继续折磨自己,将问题甩向 v2ex,希望有大佬能帮忙解决才不是因为偷懒。
然而,就在今天,希望出现了:有某个大佬直接给出了解决代码。总算解决了问题,我便开始研究思路。简单看了一眼,发现我犯了一个非常大的错误:我从服务端获取的 sid 是服务端的,我必须要先从客户端获取 sid,把 sid 传给服务端,才能让服务端定位客户端并发送消息。
虽然是个低级错误,不过无论如何困扰了几天的问题总算解决了,又能愉快写 bug 了。只能说还是 v 友厉害,不过看起来我的代码水平还有待提高,不然下次说不定就没有那么幸运能遇到愿意帮忙的人了。
2022.7.14