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