JavaScript WebSocket.send() — надіслати повідомлення


Метод send() надсилає повідомлення через відкрите з'єднання — рядок або двійкові дані.

автор: NagarD

Загальний опис

Головна пастка: викликати його можна лише коли з'єднання відкрите. Одразу після new WebSocket() воно ще встановлюється, і send() кине помилку.

Тому надсилають або в обробнику onopen, або перевіривши readyState === WebSocket.OPEN.

Об'єкти самі не серіалізуються — їх треба перетворювати на JSON.

автор: NagarD

Нотатка

send() на щойно створеному сокеті кидає InvalidStateError: з'єднання ще не встановлене. Чекай на onopen.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
send 16+ 11+ 7+ 12.1+ 12+ 10+
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
send 4.4+ yes yes 6+

Приклади

+ запропонувати свій приклад у пісочниці

Надсилання лише при відкритому з'єднанні.

const socket = new WebSocket('wss://example.com/chat');

// так — помилка: з'єднання ще не відкрите
// socket.send('привіт');

socket.onopen = () => {
    socket.send(JSON.stringify({ type: 'hello' }));
};

function sendMessage(text) {
    // перевірка перед кожним надсиланням
    if (socket.readyState !== WebSocket.OPEN) {
        console.warn('З\'єднання не готове');
        return;
    }

    socket.send(JSON.stringify({ text }));
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід