Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
https://medium.com/@dennissmink/laravel … 7a9e57bae9
window.Echo.private(`chat.${chatId}`)
.listen('PushMessageEvent', (data) => {
console.log('echoPushMessage133', data);
dispatch({
type: MESSAGES_ECHO_PUSH_MESSAGE,
data
});
})
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class PushMessageEvent implements ShouldBroadcast
{
public $chatMessage;
public $chatId;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct($chatMessage, $chatId)
{
$this->chatMessage = $chatMessage;
$this->chatId = $chatId;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('chat.'.$this->chatId);
}
}
routes\channels.php
Broadcast::channel('chat.{chatId}', function ($user, $chatId) {
\Illuminate\Support\Facades\Log::info('1111');
return true;
return ChatMessage::where([
['user_id', $user->id],
['chat_id', $chatId]
])->count() > 0;
});
Если я меняю приват на обычный канал(в js и php), то всё работает, а с приватным получатся ошибка
⚠ [19:39:47] - wVU2a2oSqfPYcBOAAAAG could not be authenticated to private-chat.3
{
"message": "The POST method is not supported for this route. Supported methods: GET, HEAD.",Client can not be authenticated, got HTTP status 405
А затем сразу идёт
Channel: private-chat.3
Event: App\Events\PushMessageEvent
Но при этом в логах ничего не появляется и в js тоже событие не срабатывает.
Изменено Kirir (30.05.2019 19:53:57)
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Решил проблему. В коммитах репозитория https://gitlab.com/Kir1/laral-echo.git решение.
Изменено Kirir (25.06.2019 22:50:45)
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
А на сервере была ошибка
Error: connect ECONNREFUSED 172.31.16.20:443
Я создал этот айпишник в айсп-менеджере и думал что он добавлен, а оказалось. это в другом месте надо было делать.
Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20
Не в сети
Приватный канал слышат только одписавшиеся на него. Не используй приватный канал для глобальной нотификации.
Чтобы совсем было понятно - приватный канал это конва между двумя пользователями.
Не в сети
Ещё можно подписывать пользователей на разные каналы/листенеры. Ограничение лишь в пределах разумности количества каналов
Не в сети