2016-11-04 106 views
1

我正在一个基于Socketio 0.9的小型项目中工作。一切都在工作weell,但我有一个小的问题与特殊字符Socket.io发出特殊字符

我创建从JavaScript的Web客户端至极动态JSON对象emited到服务器:

var config = new Object(); 
config.name1 = 'Iñaki'; 
config.name2 = 'Óscar'; 
config.name3 = 'Alba'; 

var data = new Array(); 
data.push(config); 

var myJson = new Object(); 
myJson.hash = hash; 
myJson.serial = serial; 
myJson.data = data; 

iosocket.emit('config', myJson)); 

而在服务器我收到到底冒落给其他客户端:

socket.on('config', function (data) { 
     ... 
     socket.broadcast.to(myroom).emit("data", data.data); 
    } 

此时,如果我在我的配置Javascript对象中有'Iñaki'或'Óscar'等特殊字符,我的数据不会从socketio发送到我的客户。但是如果我使用非特殊字符名称填充对象,它就可以使用。

¿为什么?

注:我不能升级到socketio 1.x的 注:我server.js是UTF-8保存。

感谢。

回答

0

今天我一直在努力解决同样的问题。

在我的情况下,问题是服务器和客户端的socket.io版本不一样。我使用的是socket.io-client 2.0.1和Socket.io 1.4.0,因此将socket.io-client版本降级到1.4.0可以解决问题。