Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 30.05.2019 19:50:08

Echo Server не работает Private Channel - Client can not be auth 405

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

Не в сети

#2 25.06.2019 22:50:15

Re: Echo Server не работает Private Channel - Client can not be auth 405

Решил проблему. В коммитах репозитория https://gitlab.com/Kir1/laral-echo.git решение.

Изменено Kirir (25.06.2019 22:50:45)


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

#3 13.08.2019 19:05:58

Re: Echo Server не работает Private Channel - Client can not be auth 405

А на сервере была ошибка
Error: connect ECONNREFUSED 172.31.16.20:443
Я создал этот айпишник в айсп-менеджере и думал что он добавлен, а оказалось. это в другом месте надо было делать.


Связь со мной:
Скайп(с аватаркой) - shyraks
Телеграм - @Mramoris или +7 999 260 13 20

Не в сети

#4 16.08.2019 18:53:32

Re: Echo Server не работает Private Channel - Client can not be auth 405

Приватный канал слышат только одписавшиеся на него. Не используй приватный канал для глобальной нотификации.
Чтобы совсем было понятно - приватный канал это конва между двумя пользователями.

Не в сети

#5 16.08.2019 18:54:24

Re: Echo Server не работает Private Channel - Client can not be auth 405

Ещё можно подписывать пользователей на разные каналы/листенеры. Ограничение лишь в пределах разумности количества каналов

Не в сети

Подвал раздела