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
4 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
完全可以换一种思路,首先网络只能传送流数据这是无法改变的,有非常多的方法可以将对象通过特定格式以字符串的形式传送。比如,JSON、FORM,后端取出来后再解析成相应类型就行
封装一个函数
ws.sendObject = function(data) {
return ws.send(JSON.stringify(data));
};
哈士奇WWW
TA贡献1799条经验 获得超6个赞
自己突然有一个想法,就是将token和fd绑定写入redis/mysql, 在请求的时候根据fd去查询,但是用户每打开一个窗口就创建一个fd,所以这种貌似是不可取的吧???
- 4 回答
- 0 关注
- 383 浏览
添加回答
举报
0/150
提交
取消