Я создаю приложение для заказа, где я делаю бэкэнд с Laravel
, а интерфейс с ReactJS
и React Native
. Я хочу получать обновления в реальном времени всякий раз, когда клиент размещает заказ ивсякий раз, когда заказ обновляется.
В настоящее время мне удавалось запустить websocket, который использует API толкателя , используя devmarketer его руководство.
Я успешно ввел порядок в консоли, но теперь я хочу получить доступ к channel
, используя мое react
приложение
И на этом этапе я нахожусьстолкнувшись с трудностями.
Поскольку я не уверен, как создать route
, доступный для моих приложений и как получить доступ к каналу по этому маршруту.
Официальная документация Laravel даетпример, как получить доступ к пушеру, но не как подключиться к нему, например, с помощью внешнего соединения (пример: мое собственное приложение реагировать)
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'rapio1',
host: 'http://backend.rapio',
authEndpoint: 'http://backend.rapio/broadcasting/auth',
auth: {
headers: {
// Authorization: `Bearer ${token}`,
Accept: 'application/json',
},
}
// encrypted: true
});
window.Echo.channel('rapio.1').listen('OrderPushed', (e) =>{
console.log(e.order)
})
Так что мой вопрос: как я могу получить доступ к каналу вещания на моем * 1024?* apps?
ДОБАВЛЕННОЕ СОБЫТИЕ НАЗАД
class OrderPushed implements ShouldBroadcastNow
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $neworder;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Order $neworder)
{
$this->neworder = $neworder;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
//return new Channel('Rapio.'.$this->neworder->id);
return new Channel('Rapio');
}
public function broadcastWith()
{
return [
'status' => $this->neworder->status,
'user' => $this->neworder->user->id,
];
}
}