WebSocket 建立连接后会因为种种原因而失效, 为了能够正常连接, 前端 js 代码会自动重连, 但这就产生一个问题, 我们如何识别重连前后的用户是不是同一个用户?
有两个疑问:
1 WebSocket 本身会自带一个标识, 让后端能够自动识别重连前后的 socket 是同一个用户, 有这种情况存在吗?
2 前端 JS 代码设置一个标识, 让后端能够手动判断重连前后的 socket 是同一个用户, 可以这样做吗?
WebSocket 建立连接后会因为种种原因而失效, 为了能够正常连接, 前端 js 代码会自动重连, 但这就产生一个问题, 我们如何识别重连前后的用户是不是同一个用户?
有两个疑问:
1 WebSocket 本身会自带一个标识, 让后端能够自动识别重连前后的 socket 是同一个用户, 有这种情况存在吗?
2 前端 JS 代码设置一个标识, 让后端能够手动判断重连前后的 socket 是同一个用户, 可以这样做吗?
|
page470075640Mar 17, 2021 via iPhone
1
重新走一遍验证流程就好了
|
|
2kCS5c0b0ITXE5k2Mar 17, 2021
2
请求头不就好了。
|
|
2kCS5c0b0ITXE5k2Mar 17, 2021
3
而且 websocket 不是也能用 cookie 这种吗?
|
|
phperstarMar 17, 2021
4
创建连接,不是可以携带请求数据吗?带上用户标识 id 就可以呀
|
|
theOneMeMar 17, 2021
5
websocket 重连会有一个协议升级的过程,是 http 的,可以在这里携带用户的信息
|
|
6
@page470075640 这个太麻烦了
|
|
2kCS5c0b0ITXE5k2Mar 18, 2021
10
@wanlion websocket 在握手的时候是先 HTTP 然后 WebSocket Upgrade. 然后才是 websocket 连接
具体可以看下 https://halfrost.com/websocket/ |
|
2kCS5c0b0ITXE5k2Mar 18, 2021
12
@leon0903 websocket 发 cookie 不就好了. cookie 是存在用户本地的啊.
|