2015-11-02 87 views
1

我有一個非常簡單的應用程序,客戶端JS應該從表單獲取數據並通過data事件將其發送到服務器。Socket.io,無法從客戶端發出自定義事件

這裏是服務器端代碼:

var express  = require('express'), 
    app   = express(), 
    http  = require('http').Server(app), 
    io   = require('socket.io')(http); 

io.sockets.on('connection', function(socket) { 
    console.log('Client connected'); 
}); 
io.sockets.on('data', function(data) { 
    console.log(data); 
}); 

http.listen(8080); 

這裏是客戶端代碼:

var socket = io.connect('http://localhost:8080'); 

$('#send').click(function(e) { 
    e.preventDefault(); 
    socket.emit('data', { 
     transportation: $('#transportation').val(), 
     distance: $('#distance').val() 
    }); 
}); 

在服務器端的控制檯上,我看到了connection事件被正確接收,但不是data ...

回答

3

您需要在客戶端套接字上添加處理程序,如下所示:

io.sockets.on('connection', function(socket) { 
    console.log('Client connected'); 
    socket.on('data', function(data) { 
     console.log(data); 
    }); 
}); 

http.listen(8080); 
+0

解決了!謝謝。 – Bertrand