2016-11-04 59 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可以解決問題。