JavaScript WebSocket.send() — надіслати повідомлення
Метод send() надсилає повідомлення через відкрите з'єднання — рядок або двійкові дані.
Загальний опис
Головна пастка: викликати його можна лише коли з'єднання відкрите. Одразу після new WebSocket() воно ще встановлюється, і send() кине помилку.
Тому надсилають або в обробнику onopen, або перевіривши readyState === WebSocket.OPEN.
Об'єкти самі не серіалізуються — їх треба перетворювати на JSON.
автор: NagarD
- Нотатка
-
автор: NagarDsend()на щойно створеному сокеті кидаєInvalidStateError: з'єднання ще не встановлене. Чекай наonopen.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| send | 16+ | 11+ | 7+ | 12.1+ | 12+ | 10+ |
| Переглядач | ||||
|---|---|---|---|---|
| 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 }));
}
Коментарі
Коментарів ще немає — будьте першим!