首页 > 代码库 > socket.io带中文时客户端无法响应
socket.io带中文时客户端无法响应
记录坑了自己1个多小时的问题。
情况是:
服务端代码:
var a = {username: new Date()}; socket.emit(‘updatePositionInfo‘,a);
前端代码:
console.log 结果:
上面是正常结果,如果将username 的值换成中文:
socket.on(‘updatePositionInfo‘, function (data) { console.log(data);
console.log 结果:
上面是正常结果,如果将username 的值换成中文:
var a = {username: "大哥"}; socket.emit(‘updatePositionInfo‘,a);
前端代码不变。
console.log 结果: 空白,断点调试发现前端并没有接收到“updatePositionInfo”事件。百思不得其解,socketio之前两个项目都用的很顺,为什么这次随便写个demo反而出了错,经过一个多小时的折磨,最后想到是不是前端js文件太旧的原因导致,因为博主是直接拷贝的上一个项目的js文件,于是去官网下载了最新的socket.io.js前端引入文件。
结果,成功!
总结:这个demo的服务端socketio是用 ‘Npm install socket.io‘ 下载的最新版本,而前端引入的socket.io文件是2016年的版本,导致不匹配,中文传输出错,全部换成最新版本即可。socket.io在node中是特殊的一种包,分为服务端和客户端两个不同的领域,建立websocket,另外还有一个服务端中的客户端“socket.io-client”包。
socket.io带中文时客户端无法响应
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。