如何在没有按钮的情况下实现事件广播?
我使用状态通道,我的Api使用laravel护照。然后我设置了BROADCAST_DRIVER=redis
我可以让laravel echo服务器在客户端上不使用laravel echo的情况下使用,因为我的客户端是ios / android应用程序
在Web部件上,我测试了ID,但不起作用
<script src="http://my.local:6001/socket.io/socket.io.js"></script>
<script>
var socket = io('http://my.local:6001', {
extraHeaders: {
Authorization: "Bearer someRandomString"
}
})
// socket.join('rooms.1')
socket.on('rooms.1:App\\Events\\RoomCreated', function (data) {
console.log(data)
})
</script>
我的活动
public function __construct(Room $room)
{
$this->room = $room;
}
public function broadcastOn()
{
return new PresenceChannel('rooms.' . $this->room->category_id);
}
public function broadcastAs()
{
return 'room.created';
}
这怎么办?
UPD
我能够连接到状态频道
var options = {
auth: {
headers: {'Authorization': 'Bearer someRandomString'}
}
}
var socket = io('http://my.local:6001', options)
socket.emit('subscribe', {
channel: 'presence-rooms.1',
auth: options.auth
}).on('room.created', function (channel, data) {
console.log('data: ' + data)
})
但是我的on('room.created')...
无法正常工作怎么解决?
UPD2
on('App\\Events\\RoomCreated')...
有效,但是为什么room.created
不起作用?