我的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);
});
套接字加载正常,如您所见
我正在尝试通过我的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
任何想法如何修复,或者可能是什么问题?
答案 0 :(得分:0)
客户端正在侦听错误的事件,即message
,它是服务器和客户端之间的低级“事件名称”。您看到的数据是原始有效负载数据(记录为here)。
服务器正在发出不同类型的事件(其名称是channel + ':' + message.event
评估的内容),这是客户端应该监听的事件。