2014-09-25 85 views
0

傳遞任何字符串值後,服務器斷開連接。服務器只接受node.js中的號碼。在socket.io中傳遞字符串值

io = sio.listen(server); 
io.sockets.on('connection', function(socket){ 
    socket.on('chat message', function(msg){ 
    if ((new String(msg)).toString('utf-8') === 'utf-8') { 
     socket.send(msg); 
     console.log("Bye bye!\n"); 
     socket.disconnect(); 
    } else { 
     console.log('Received: ', msg); 
     messages.push(msg); 
     io.sockets.emit('chat message', msg); 
    } 
}); 

我試過這段代碼。但它不起作用。請幫幫我。

+1

你錯過了'});'你的代碼的末尾。另外,你想做什麼?有沒有錯誤信息? PHP與它有什麼關係?另外,除非你發送'utf-8',否則你的if總是錯的,應該是這樣嗎? – DrakaSAN 2014-09-25 07:50:50

+0

hai DrakaSan,服務器只接受數字不是字符串..當我給一些字符串值時服務器自動斷開連接。 – 2014-09-25 10:58:38

+0

請提供一個客戶端代碼示例。你確定你不想簡單地輸入'msg ==='string''?在文檔中,我只看到'send'方法用於客戶端,也許你可以嘗試'socket.emit('chat message',msg);'服務器端? – 2014-09-25 12:28:51

回答

0
var socket = io.connect('http://localhost:8000'); 
$('form').submit(function(){ 
socket.emit('chat message', $('#m').val()); 
$('#m').val(); 
return false; 
}); 
var datavar=1; 
socket.on('chat message', function(msg){ 
$('#messages').append(msg); }); 

這是客戶端代碼......