Javascript emit()不工作[Node.js]

Javascript emit()不工作[Node.js],javascript,php,node.js,redis,laravel-5,Javascript,Php,Node.js,Redis,Laravel 5,我将订阅到laravel 5事件[channal]update.group,并在触发事件后在控制台中收到消息,但在浏览器的客户端上,我没有收到任何消息。此外,在触发事件后,我在控制台中接收到消息,然后节点服务器停止处理消息: bash-4.2# node node.js Listening on Port 3000 Message Recieved: testasdsa /home/client/public_html/node_modules/ioredis/lib/parsers/javas

我将订阅到laravel 5事件[channal]
update.group
,并在触发事件后在控制台中收到消息,但在浏览器的客户端上,我没有收到任何消息。此外,在触发事件后,我在控制台中接收到消息,然后节点服务器停止处理消息:

bash-4.2# node node.js
Listening on Port 3000
Message Recieved: testasdsa
/home/client/public_html/node_modules/ioredis/lib/parsers/javascript.js:216
        throw err;
              ^
SyntaxError: Unexpected token e
    at Object.parse (native)
    at Redis.<anonymous> (/home/client/public_html/node_modules/node.js:10:20)
    at Redis.emit (events.js:110:17)
    at Redis.exports.returnReply (/home/client/public_html/node_modules/ioredis/lib/redis/parser.js:79:16)
    at ReplyParser.<anonymous> (/home/client/public_html/node_modules/ioredis/lib/redis/parser.js:27:10)
    at ReplyParser.emit (events.js:107:17)
    at ReplyParser.send_reply (/home/client/public_html/node_modules/ioredis/lib/parsers/javascript.js:281:8)
    at ReplyParser.execute (/home/client/public_html/node_modules/ioredis/lib/parsers/javascript.js:210:14)
    at Socket.<anonymous> (/home/client/public_html/node_modules/ioredis/lib/redis/event_handler.js:90:22)
    at Socket.emit (events.js:107:17)
    at readableAddChunk (_stream_readable.js:163:16)
    at Socket.Readable.push (_stream_readable.js:126:10)
    at TCP.onread (net.js:538:20)
对于客户端:

    var socket = io.connect('127.0.0.1:3000');
    socket.on("update.group", function(message){
    // increase the power everytime we load test route
    console.log(message);
});

任何人都可以找到问题所在?

从调试输出中可以明显看出:
testasdsa
不是有效的JSON,因此无法对其进行解析。您需要更改发布消息的代码,以便正确地对其进行JSON编码

由于您希望对象上有
事件
数据
属性,因此发布者需要编写类似
{“事件”:“foo”,“数据”:“testasdsa”}
的内容

要解决浏览器客户端无法获取事件的问题,您需要在服务器脚本中更改以下内容:

io.sockets.emit(channel + ':' + message.event, message.data);
致:


然后确保发布者发送类似于
{“event”:“update.group”,“data”:“somedata”}

好的,我的错误消失了,但仍然无法在浏览器控制台中从客户端获取消息。。。在服务器端控制台接收:
接收到的消息:{“事件”:“foo”,“数据”:“testasdsa”}
io.sockets.emit(channel + ':' + message.event, message.data);
io.sockets.emit(message.event, message.data);