Socket.io,无法从客户端发出自定义事件
Socket.io, can't emit custom event from client
我有一个非常简单的应用程序,客户端 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);
我有一个非常简单的应用程序,客户端 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);