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);