以下是一个单元测试,用于显示我正在经历的行为,我认为这与我之前所经历的不同。从本质上讲,我之前(也许两个月前)使用套接字的方式在当时和现在之间的某个时间停止了工作。我不确定发生了什么。我以前工作的代码已经崩溃了。
var socketio = require('socket.io');
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type' : 'text/html' });
var html = "<html><head><script src=\"/socket.io/socket.io.js\"></script>\
<script>var sock = io.connect();\
sock.on('sup', function(data) {\
console.log(\"whoo\");\
sock.emit('howdy', {'hi' : 'ho'});\
});</script></head></html>";
res.end(html);
}).listen(8080);
socketio.listen(server, {log:false}).on('connection', function(socket) {
socket.on('howdy', function(data){console.log("HI!");});
socket.emit("sup", {"hey" :"yo"});
});
我对代码的期望是以下事件序列:
步骤4根本没有发生。 (因此我假设步骤3可能不会发生)
发生了什么事?
答案 0 :(得分:1)
您的客户端代码基本上就是
var sock = io.connect();
console.log("Gets here");
sock.on('sup', function(data) {
console.log("whoo");
});
sock.emit('howdy', {'hi' : 'ho'});
我假设只要你将发射器移动到处理程序中它就会起作用。
var sock = io.connect();
console.log("Gets here");
sock.on('sup', function(data) {
console.log("whoo");
sock.emit('howdy', {'hi' : 'ho'});
});
或者您可以尝试侦听连接事件
var sock = io.connect();
console.log("Gets here");
sock.on('sup', function(data) {
console.log("whoo");
});
sock.on('connect', function() {
sock.emit('howdy', {'hi' : 'ho'});
});
答案 1 :(得分:0)
我刚刚更新了socket.io,它现在正在运行。