Zep*_*sGT 3 javascript websocket local-storage
我正在编写一个与 websocket 服务器通信的客户端。目前,套接字服务器将生成的“令牌”发送给客户端,然后客户端将其设置为存储:
localStorage.setItem('token', json.token);
Run Code Online (Sandbox Code Playgroud)
并重定向到下一页,该页面在加载时运行以下代码:
token = localStorage.getItem('token')
console.log(token)
socket.send(JSON.stringify({"type": "getplayerinfo", "token": token}));
Run Code Online (Sandbox Code Playgroud)
在执行 console.log(token) 时,我得到了令牌。但是,当通过套接字发送令牌时,我得到:
Uncaught DOMException: An attempt was made to use an object that is not, or is no longer, usable
Run Code Online (Sandbox Code Playgroud)
我已经调试了三天了,伤透了我的大脑。有小费吗?
小智 6
当您在连接完全连接到服务器之前尝试通过 Websocket 连接发送某些内容时,通常会发生这种情况。因此,您应该做的是当服务器发送连接信号时运行代码,您可以使用事件侦听器“open”。在你的情况下,这将是:
const socket = new Websocket(url);
socket.addEventListener("add", (ev) => {
socket.send(JSON.stringify({"type": "getplayerinfo", "token": token}));
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8878 次 |
| 最近记录: |