我正在尝试为我正在使用Ionic和Laravel作为后端开发的应用程序设置Web套接字。
Web套接字正在运行,但是当我尝试将其设为私有时,出现错误。
要启动该应用程序,请运行ionic serve
。该服务器正在使用valet运行,并启动事件和socket.io服务器,我正在运行php artisan horizon
和laravel-echo-server start
。
正如我所说的,套接字是公开工作的,但是当我在广播公司中将其设置为PrivateChannel
时,套接字会立即断开。
我用来监听频道journey.{id}
上的事件的代码是
this.echo = new Echo({
broadcaster: 'socket.io',
host: 'http://localhost:6001',
encrypted: true,
authHost: 'https://app.dev/',
authEndpoint: 'api/broadcasting/auth',
auth:{
headers: {
Accept: 'application/json',
Authorization: 'Bearer ' + key
}
}
});
return this.echo.private('journey.' + id);
然后我在页面中收听此消息,因为此代码在提供程序中。
在服务器端,我的Broadcast::routes(['middleware' => ['web', 'auth:api']]);
中有行routes/api.php
。
希望您能提供帮助!如果您需要更多信息,请询问。