zoukankan      html  css  js  c++  java
  • socket.io带中文时客户端无法响应

    记录坑了自己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,另外还有一个服务端中的客户端“socket.io-client”包。
  • 相关阅读:
    servlet里的forward和redirect的区别
    JSP九大内置对象
    float和Float的区别
    Throwable相关知识1
    常见异常和错误总结
    final/finalize/finally的区别
    mysql命令大全
    mongodb安装
    mysql编译安装(详细)
    mysql的三种安装方式(详细)
  • 原文地址:https://www.cnblogs.com/yourstars/p/6928178.html
Copyright © 2011-2022 走看看