Javascript 广播事件-在服务器端运行良好,但在客户端不起作用

Javascript 广播事件-在服务器端运行良好,但在客户端不起作用,javascript,node.js,sockets,laravel,socket.io,Javascript,Node.js,Sockets,Laravel,Socket.io,我使用的是Laravel5.1。我试图在相关函数上触发一个UserAddedFriend事件,并被Socket.io和Redis捕获 因此,我在服务器端运行node socket.js。在我看来一切都很好,当我打开两个浏览器并使用两个不同的用户(X和Y)登录时,两个浏览器都可以连接 当我调用函数“addFriend”时,会触发事件。在服务器上,node socket.js也打印接收的文本;但是,在控制台中的任何浏览器上都不会返回任何内容 我错过了什么或做错了什么 因此,在“addFriend(

我使用的是Laravel5.1。我试图在相关函数上触发一个UserAddedFriend事件,并被Socket.io和Redis捕获

因此,我在服务器端运行
node socket.js
。在我看来一切都很好,当我打开两个浏览器并使用两个不同的用户(X和Y)登录时,两个浏览器都可以连接

当我调用函数“addFriend”时,会触发事件。在服务器上,
node socket.js
也打印
接收的
文本;但是,在控制台中的任何浏览器上都不会返回任何内容

我错过了什么或做错了什么


因此,在“addFriend()”函数上,我触发此事件:

 \Event::fire(new UserAddedFriend($username));
在类用户添加的朋友上:

class UserAddedFriend extends Event implements ShouldBroadcast

public $username;

public function __construct($username)
{
    $this->username = $username;

}

public function broadcastOn()
{
    return ['test-channel'];
}
服务器:

var server = require('http').Server();
var io = require('socket.io')(server);

var Redis = require('ioredis');
var redis = new Redis();

redis.subscribe('test-channel', function(err, count) {
    //
});

redis.on('message', function(channel, message) {
    console.log("Received");       // gets printed

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

server.listen(3000);
最后,客户端

 <script>
    var socket = io('http://192.168.10.10:3000');

    socket.on('test-channel:UserAddedFriend', function(data) {
       console.log('a');     // nothing logged
       console.log(data);    // nothing logged
   });

</script>
我发现了我的问题

socket.on('test-channel:UserAddedFriend',函数(数据)

应该是

socket.on('test-channel:App\\Events\\UserAddedFriend',函数(数据)

 public function handle(UserAddedFriend $event)
  {
    dd($event->username . ' added you.');
  }