我有一些非常基本的使用socket.io的代码。
客户端
服务器
希望你已经看到了这张图片。理想情况下,应该是这样的:
这不是我的全部代码,我认为这会让您更容易理解它。很可能我在某个地方犯了一些愚蠢的错误,也许没有包括在这个代码中。但如果我做错了什么,请告诉我。
谢谢
客户端
var socket = io();
// Do some stuff...
socket.emit('hello', 'please like me');
// Wait for a response
socket.on('hello back!', function(msg) {
console.log('Yay, he replied:', msg);
});
服务器
var app = require('express');
var http = require('http').Server(app);
var io = require('socket.io')(http);
io.on('connection', function(socket) {
console.log('a user connected');
socket.on('disconnect', function() {
console.log('user disconnected');
});
socket.on('hello', function() {
// Code to decide wether or not I like the client
// ...
// I do like the client!
socket.emit('hello back!', 'how are you');
console.log('I said hello back!');
});
});
希望你已经看到了这张图片。理想情况下,应该是这样的:
- 客户端连接
- 一段时间后,客户端发出
hello
事件 - 服务器看到这个事件,返回
hello back!
事件 - 客户端注意到
hello back!
事件 - 每个人都很高兴!
hello back!
事件之后的信息。这不是我的全部代码,我认为这会让您更容易理解它。很可能我在某个地方犯了一些愚蠢的错误,也许没有包括在这个代码中。但如果我做错了什么,请告诉我。
谢谢
socket.on('hello back!', ...)
移动到socket.emit('hello', ...)
之前,这样你就可以确保在发送消息之前已经设置了响应的监听器,但这可能不是主要问题。 - jfriend00