博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket.io带中文时客户端无法响应
阅读量:7063 次
发布时间:2019-06-28

本文共 709 字,大约阅读时间需要 2 分钟。

记录坑了自己1个多小时的问题。

情况是:

服务端代码:

var a = {username: new Date()};socket.emit('updatePositionInfo',a);

 

前端代码:
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,另外还有一个服务端中的客户端“ ”包。

转载于:https://www.cnblogs.com/yourstars/p/6928178.html

你可能感兴趣的文章
Oracle 查看表空间的大小及使用情况sql语句
查看>>
Android画图并保存图片(转载)
查看>>
移动下标效果
查看>>
eclipse 性能调优之内存分配
查看>>
c语言程序开发过程,编译的完整过程
查看>>
POJ2472106 miles to Chicago
查看>>
python高级(4)—— 虚拟环境安装使用
查看>>
rabbitmq management Login Failed
查看>>
『Kruscal重构树 Exkruscal』
查看>>
QTP的那些事 -– Visual Relation Identifier Feature: How to use in the real world
查看>>
项目管理软件推荐
查看>>
Request.Url.Query 和 Request.QueryString的区别
查看>>
SCU 4439 Vertex Cover(二分图最小覆盖点)题解
查看>>
js创建及操作数组
查看>>
Web前端开发面试题赋答案
查看>>
javascript创建对象的几种方式
查看>>
yarn.resourcemanager.ha.id设置
查看>>
主动调用其他类的成员, 特殊成员
查看>>
vim操作
查看>>
ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
查看>>