【发布时间】:2016-01-24 10:48:33
【问题描述】:
我是 socket.io 的新手,并试图让它工作。我不知道我在这里做错了什么,因为它看起来非常简单 - 但它不起作用。我想我遗漏了一些明显的东西。希望其他人能看到那是什么。
我正在设置 socket.io 以使用 node/express 服务器。这是我正在尝试做的测试的简化版本。
服务器:
var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
var io = require('socket.io')(server);
/* socket.io test */
io.on('connection', function(socket){
socket.on('helloServer', function(clientMessage){
console.log("Server got 'helloServer' event");
socket.emit('helloClient', { message : "Hi there. We got your message: " + clientMessage.message});
});
});
客户端有一个函数callServer,当用户单击 UI 中的按钮时会调用它:
var socket = io.connect('http://localhost');
function callServer() {
socket.emit('helloServer', { message : "Hello server!" });
}
socket.on('helloClient', function (serverMessage) {
console.log(serverMessage.message);
});
当我运行此代码并单击调用callServer 的按钮时,服务器确实收到了事件helloServer,因为我看到控制台按预期记录了消息,但客户端从未收到@987654326 @ 事件。就好像socket.on 响应函数中的socket.emit 调用永远不会被调用。
我做错了什么?
【问题讨论】:
标签: javascript node.js express socket.io