Socket.io,不能从客户端发出自定义事件

我有一个非常简单的应用程序,与客户端JS应该从表单中获取数据,并通过data事件发送到服务器。

这里是服务器端的代码:

 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

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

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