我开始使用Socket.io
和nodeJS API
我成功连接了用户,并在我的服务器上显示了一条消息。
但是现在,我正在尝试将数据发送到我的客户端 - >然后服务器 - >然后客户再次等。
但是当我使用emit
时,没有任何附加内容......所以这是我的代码:
SERVER SIDE
io.on('connection', function(socket){
console.log("user connected") // I see that
socket.emit('text', 'it works!'); //
socket.on('test1', function (data) {
console.log('received 1 : '); // Never showed
console.log(data); // Never showed
});
}
CLIENT SIDE
var socket = io.connect(myUrl); // good connection
socket.emit ('test1', {map: 4, coords: '0.0'}); // never showed on the server side
socket.on('text', function(text) {
alert(text); // never showed
socket.emit('test', { "test": "test2" });
});
有什么想法吗?
谢谢!
答案 0 :(得分:0)
您的入门代码似乎有效,您需要检查两件事:
socket.min.js
包含在客户端答案 1 :(得分:0)
在客户端,您必须等到连接成功,然后才能安全地将数据发送到服务器。连接到服务器不是同步的或即时的(因此它没有立即就绪)。您正在尝试在连接准备好之前发送数据。
将您的第一个数据发送到socket.on('connect', ...)
处理程序中。
var socket = io.connect(myUrl); // good connection
// send some data as soon as we are connected
socket.on('connect', function() {
socket.emit ('test1', {map: 4, coords: '0.0'});
});
socket.on('text', function(text) {
alert(text); // never showed
socket.emit('test', { "test": "test2" });
});
答案 2 :(得分:0)
这对我有用
客户端
//sending custom data to server after successful connection
socket.on('connect', function(){
this.socket.emit('client-to-server', {map: 4, coords: '0.0'});
});
//listening the event fired by the socket server
socket.on('server-to-client', function(dataSendbyTheServer){
// do whatever you want
console.log(dataSendbyTheServer);
});
服务器端
io.on('connection', function(socket) {
// listening the event fired by the client
socket.on('client-to-server', function (data) {
console.log('received 1 : ');
// sending back to client
io.emit('server-to-client', data)
});
});