我正在研究一個簡單的Node.js雙向客戶端\服務器通信通道,並且我試圖在服務器上使用socket.io和套接字。客戶端上的io-client。Node.js socket.io服務器回調無法正常工作
我已經插入了下面的代碼,因爲您會看到它是非常基本的東西,而且我在本地計算機上都運行這兩個代碼 - 以儘量減少複雜性。
我所看到的行爲是:
- 我啓動服務器。
- 服務器將'服務器啓動'記錄到控制檯。
- 我啓動客戶端。
- 客戶端日誌'服務器已準備就緒!'
- 沒有什麼事情發生...
什麼,我期望是記錄一個服務器的客戶端是準備好了!「消息和內容('已收到')。
我甚至使用WireShark來嗅探線路,它確實顯示客戶端正在按照設計發出消息 - 但服務器上的回調並未觸發。
我跑節點v0.8.4與快遞V3.1.0,socket.io v0.9.13和socket.io客戶端v0.9.11(通過NPM所有已安裝的)。
這裏的服務器代碼...
var http = require('http'),
express = require('express'),
app = express(),
server = http.createServer(app);
app.configure(function(){
app.use(express.static(__dirname + '/public'));
});
server.listen(8080);
console.log("Server started");
var io = require('socket.io').listen(server);
io.sockets
.on('connection', function(socket){
socket.emit('server ready', { msg: 'ready' }) ;
})
.on('comms', function(content) {
console.log('Client is ready!');
console.log(content);
});
而這裏的客戶端代碼......
var clientio = require('socket.io-client');
var socket = new clientio.connect('http://localhost', { port: 8080 });
socket
.on('server ready', function(data){
console.log('Server is ready!');
socket.emit('comms', 'Ready received');
})
.on('connect-error', function(error) {
console.log('Connection Error\n' + error);
})
.on('error', function(error) {
console.log('Socket Error\n' + error);
})
socket.io和兩個文檔和例子socket.io-客戶端有點困惑(慈善),他們似乎有點移動目標......但從我可以告訴,我認爲這應該工作。
我希望有人可以給我建議,我要去哪裏錯了?
我不知道有關'服務器ready'事件名稱..嘗試'沒有空間server_ready' ... – udidu 2013-02-17 15:47:33
「服務器就緒「回調正在解僱,因爲我看到'服務器已經準備好了!'消息在控制檯上。這是服務器上沒有觸發的'comms'回調。 – 2013-02-17 15:49:04
是啊你是對的,現在我再次看到你的問題..看到我的回答低於 – udidu 2013-02-17 15:54:32