我有一个正在运行的socket.io服务器,我正在尝试实现服务器端socket.io客户端。下面是我一直用于测试的代码片段。这个问题是客户端只输出一次消息,在这种情况下它只接收“欢迎”。我尝试通过浏览器向私人频道发送消息“消息”,但即使服务器可以成功接收和发送消息,它也不会显示任何输出。
客户端
var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {'force new connection': true});
socket.on('connect', function(){
socket.on('message', function (data) {
console.log(data);
});
});
服务器
var io = require('socket.io').listen(server);
var i=0;
io.sockets.on('connection', function (socket) {
socket.emit('message', { 'msg': 'Welcome'});
socket.on('message', function (from, msg) {
socket.emit('message', { 'msg': 'Hello World - ' + i });
i++;
});
});
答案 0 :(得分:0)
你试过这个吗?
console.log(data.msg);
答案 1 :(得分:0)
您可以尝试将“套接字”更改为“此”:
this.emit('message', { 'msg': 'Hello World - ' + i });
答案 2 :(得分:0)
您应该从客户端发送到服务器。因此服务器可以将数据发送回客户端。我想这段代码工作正常: - )
<强>客户端强>
var io = require('socket.io-client');
var socket = io.connect('http://localhost:3000', {'force new connection': true});
socket.on('connect', function(){
socket.on('messageRecieved', function (data) {
console.log(data);
});
socket.emit('message','some message');
});
服务器强>
var io = require('socket.io').listen(server);
var i=0;
io.sockets.on('connection', function (socket) {
socket.on('message', function (msg) {
console.log(msg);
socket.emit('messageRecieved', { 'msg': 'Hello World - ' + i });
i++;
});
});