Socket io正在轮询,发送

时间:2017-10-15 13:54:59

标签: node.js socket.io

我的socket.js文件,它加载了socket.io,redis和其他一些东西。我正在使用节点socket.js运行套接字我的webrowser是最新的谷歌浏览器

var app = require('express')();

var server = require('http').Server(app);

var io = require('socket.io').listen(server);

var Redis = require('ioredis');

var redis = new Redis();

redis.subscribe('new-order-created');

redis.on('message', function(channel, message){

    console.log(channel, message);

    message = JSON.parse(message);
    io.emit(channel + ':' + message.event, message.data);

});

server.listen(8090, function(){
    console.log("Listening on " + 8090);
});

套接字加载正常,如您所见

enter image description here

我正在尝试通过我的html页面收听:

<h1>Getting server updates</h1>
<div id="messages"></div>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<script>
    var socket = io.connect('http://localhost:8090');

    socket.on('message', function (data) {
        data = JSON.parse(data);
        $( "#messages" ).append( "<p>"+data.user+" : "+data.message+"</p>" );
    });

</script>

我的回答是这样的:

97:0{"sid":"08zS_Xm5X8wafIUgACHG","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":60000}2:40

任何想法如何修复,或者可能是什么问题?

1 个答案:

答案 0 :(得分:0)

客户端正在侦听错误的事件,即message,它是服务器和客户端之间的低级“事件名称”。您看到的数据是原始有效负载数据(记录为here)。

服务器正在发出不同类型的事件(其名称是channel + ':' + message.event评估的内容),这是客户端应该监听的事件。