关于swoole会话的问题

发布于 2022-09-07 15:56:39 字数 466 浏览 12 评论 0

 var token = localStorage.getItem('userToken');
    if(!token){
            alert('请先登录');
       return false;
  }

  var ws = new WebSocket("ws://127.0.0.1:8081");

在ws.onopen 的时候打算将token传到服务器做校验,但是貌似ws.send() 只能穿一个值,

var data = {
token:token,
data:// 一些数据
};

ws.send(data);

如果这样传的话后台获取到的是:"{"receive from":4,"data":"[object Object]"}",

有什么办法传值在后台获取并且做token校验呢?
或者说在send的时候能不能将token加到header

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

黑凤梨 2022-09-14 15:56:39

完全可以换一种思路,首先网络只能传送流数据这是无法改变的,有非常多的方法可以将对象通过特定格式以字符串的形式传送。比如,JSON、FORM,后端取出来后再解析成相应类型就行

封装一个函数
ws.sendObject = function(data) {

return ws.send(JSON.stringify(data));

};

甜味超标? 2022-09-14 15:56:39

var ws = new WebSocket("ws://127.0.0.1:8081?token={token}");

寒江雪… 2022-09-14 15:56:39

自己突然有一个想法,就是将token和fd绑定写入redis/mysql, 在请求的时候根据fd去查询,但是用户每打开一个窗口就创建一个fd,所以这种貌似是不可取的吧???

海拔太高太耀眼 2022-09-14 15:56:39

同问!!!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文