После отключения света в доме перестал работать pusher

Сидел допиливал чат по гайду знакомого, вдруг отрубили свет, после включения в браузере начали выскакивать подобные ошибки:

WebSocket connection to 'wss://ws-${pusher_app_cluster}.pusher.com/app/$%7BPUSHER_APP_KEY%7D?protocol=7&client=js&version=8.4.0-rc2&flash=false

POST https://sockjs-${pusher_app_cluster}.pusher.com/pusher/app/$%7BPUSHER_APP_K…v/xhr_streaming?protocol=7&client=js&version=8.4.0-rc2&t=1718132213089&n=1 net::ERR_NAME_NOT_RESOLVED

Не знаю какие именно файлы предоставлять, вот файл env:

APP_NAME=ArtMotion
APP_ENV=local
APP_KEY=base64:O0fI0HeAxv8yn2+oGNDtBtnRZjTktHEGcrnlhpDjKzA=
APP_DEBUG=true
APP_URL=http://art-motion.su

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=art_motionru
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=pusher
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.mail.ru
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=AAy0T1qxtRJ9kYqh57ym
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="admin"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=1818025
PUSHER_APP_KEY=08a0987f189d01641297
PUSHER_APP_SECRET=f533533a302b8634d0d2
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=eu

VITE_APP_NAME="${APP_NAME}"
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

Вот скрипт чата, который я делал:

<script type="module">
document.addEventListener("DOMContentLoaded", function() {
    let isOwnMessage = false;
    const sendButton = document.getElementById("send-button");
    const messageInput = document.getElementById("message-input");
    const chatWindow = document.getElementById("chat-window");
    const chooseFileButton = document.getElementById("choose-file-button");
    const fileInput = document.getElementById("file-input");
    fetch('/get-messages')
        .then(response => response.json())
        .then(data => {
            data.forEach(message => {
                const messageElement = document.createElement("div");
                const messageContent = document.createElement("div");
                
                if (message.user.id === currentUserId) {
                    messageElement.classList.add("message", "sent");
                    messageContent.classList.add("message-content", "own-message");
                } else {
                    messageElement.classList.add("message", "received");
                    messageContent.classList.add("message-content");
                }
                messageContent.innerHTML = `<p>${message.user.name}: ${message.message}</p>`;
                messageElement.appendChild(messageContent);
                chatWindow.appendChild(messageElement);
                chatWindow.scrollTop = chatWindow.scrollHeight;
            });
        });
        sendButton.addEventListener("click", function() {
            const messageText = messageInput.value.trim();
            if (messageText !== "") {
                const messageElement = document.createElement("div");
                const messageContent = document.createElement("div");
                messageElement.classList.add("message", "sent");
                messageContent.classList.add("message-content", "own-message");
                messageContent.innerHTML = `<p>${authUserName}: ${messageText}</p>`;
                messageElement.appendChild(messageContent);
                chatWindow.appendChild(messageElement);
                chatWindow.scrollTop = chatWindow.scrollHeight;
                fetch('/send-message', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                        'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
                    },
                    body: JSON.stringify({ message: messageText })
                });
                messageInput.value = "";
                isOwnMessage = true;
            }
        });
    messageInput.addEventListener("keypress", function(event) {
        if (event.key === "Enter") {
            sendButton.click();
        }
    });
    chooseFileButton.addEventListener("click", function() {
        fileInput.click();
    });
    fileInput.addEventListener("change", function() {
        const file = fileInput.files[0];
        if (file) {
            const messageElement = document.createElement("div");
            messageElement.classList.add("message", "sent");

            const messageContent = document.createElement("div");
            messageContent.classList.add("message-content");
            messageContent.innerHTML = `<p>Файл: ${file.name}</p>`;

            messageElement.appendChild(messageContent);

            chatWindow.appendChild(messageElement);
            chatWindow.scrollTop = chatWindow.scrollHeight;
        }
    });
    window.Echo.private('chat')
        .listen('MessageSent', (e) => {
            if (!isOwnMessage) { // Проверка флага
                const messageElement = document.createElement("div");
                messageElement.classList.add("message", "received");

                const messageContent = document.createElement("div");
                messageContent.classList.add("message-content");
                messageContent.innerHTML = `<p>${e.user}: ${e.message}</p>`;

                messageElement.appendChild(messageContent);
                chatWindow.appendChild(messageElement);
                chatWindow.scrollTop = chatWindow.scrollHeight;
            }
            isOwnMessage = false;
        });
});
</script>
<script>
    const currentUserId = <?php echo auth()->id(); ?>;
    const authUserName = "<?php echo auth()->user()->name; ?>";
</script>

Вот код контроллера:

class ChatController extends Controller
{
    

    public function sendMessage(Request $request)
    {
        $request->validate([
            'message' => 'required|string'
        ]);
        if (!auth()->check()) {
            return response()->json(['error' => 'Unauthenticated'], 401);
        }
        $message = Message::create([
            'user_id' => auth()->id(),
            'message' => $request->message
        ]);
        broadcast(new MessageSent($message->load('user')))->toOthers();
        return response()->json(['status' => 'Message Sent!']);
    }

    public function getMessages()
    {
        $messages = Message::with('user')->get();
        return response()->json($messages);
    }
}

В самом пушере на странице приложения перестали регистрироваться подключения, показываются только сообщения:пушер

Ну и соответственно сообщения в лайве не отображаются, только после обновления страницы, так как они заносятся в базу данных. Буду рад любой помощи, готов отблагодарить материально, если проблема по итогу будет решена


Ответы (1 шт):

Автор решения: AlexanderSt

Если ОС - Windows, то:

  • Очистите DNS, сбросьте Winsock, а затем сбросьте TCP / IP, обновите IP-адреса:

  • Нажмите кнопку «Пуск» и введите «командная строка» в поле. В появившихся результатах поиска щёлкните правой кнопкой мыши Командную строку и выберите параметр «Запуск от имени администратора».

  • После открытия командной строки необходимо ввести эту команду: ipconfig
    /flushdns

  • Перезагрузите компьютер.

  • Если не помогло, нужно ввести эти команды по очереди (для того, чтобы обновить IP-адреса): ipconfig/release ipconfig /renew

  • Перезагрузите компьютер.

  • Если проблема не решилась - нужно сбросить Winsock (перед этим лучше всего создать точку восстановления системы): netsh winsock reset

  • Перезагрузите компьютер.

Если н помогло, можно еще из консоли Администратора сбросить настройки TCP: netsh int ip reset

→ Ссылка