我想測試一個簡單的socket.io websocket服務器。我在命令行中用於測試socket.io的工具是iocat。這臺服務器有什麼問題?
服務器:
var io = require('socket.io')(12345);
io.on('connection', function(socket){
console.log('a user connected');
socket.on('disconnect', function(){
console.log('user disconnected');
});
socket.on('test', function(msg){
console.log('test msg: ' + msg);
io.emit('test', 'Test answer');
});
});
我node socket.js
命令啓動它,並關閉這臺機器上運行的Web服務器。
這工作。
[email protected]:~/prj/client$ iocat --socketio ws://localhost:12345
> test
> asdfasdf
>
服務器響應:
[email protected]:~/prj/client$ node socket.js
a user connected
user disconnected
a user connected
user disconnected
任何知道爲什麼服務器的連接和斷開事件,但沒有爲「測試」消息迴應好不好?我更喜歡命令行測試器,因爲我想將我的Web服務器放在https,Apache代理和子URL上。所以我想確保我的寶貝一步,沒有別的干擾。
服務器沒有問題。正如我在下面修改的答案所解釋的那樣,您的客戶端正在發送消息名稱「message」,而不是「test」,以便服務器永遠不會看到它。 – jfriend00