Socket.io 不是从客户端或服务器发出?
Socket.io not Emitting from Client nor Server?
在客户端,我有这个代码:
var serverAddress = "http://localhost:8081";
var socket = io(serverAddress);
socket.on('connect', function(){
console.log("Connected to server on %s", serverAddress);
});
socket.emit("xxx", {text : "attack"});
在服务器上,我有这个:
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
var socket = require('socket.io').listen(server);
socket.on('connect', function() {
console.log('A user is connected to server');
});
socket.on('xxx', function(data) {
console.log(data);
});
connect
事件被触发并在服务器上被捕获,但 xxx
事件甚至没有被触发或被捕获。怎么了? Console.log
没有报错。
您混淆了 socket.io 服务器 与 socket.io 连接 。
建立新的客户端连接时,服务器接收到 connection
事件。该事件的参数(通常称为 socket
)表示该连接。这是您需要用来收听消息的对象:
// server
...
var io = require('socket.io').listen(server);
...
io.on('connection', function(socket) {
console.log('A user is connected to server');
socket.on('xxx', function(data) {
console.log(data);
});
});
在客户端,我有这个代码:
var serverAddress = "http://localhost:8081";
var socket = io(serverAddress);
socket.on('connect', function(){
console.log("Connected to server on %s", serverAddress);
});
socket.emit("xxx", {text : "attack"});
在服务器上,我有这个:
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
var socket = require('socket.io').listen(server);
socket.on('connect', function() {
console.log('A user is connected to server');
});
socket.on('xxx', function(data) {
console.log(data);
});
connect
事件被触发并在服务器上被捕获,但 xxx
事件甚至没有被触发或被捕获。怎么了? Console.log
没有报错。
您混淆了 socket.io 服务器 与 socket.io 连接 。
建立新的客户端连接时,服务器接收到 connection
事件。该事件的参数(通常称为 socket
)表示该连接。这是您需要用来收听消息的对象:
// server
...
var io = require('socket.io').listen(server);
...
io.on('connection', function(socket) {
console.log('A user is connected to server');
socket.on('xxx', function(data) {
console.log(data);
});
});