Я установил стандартную среду websocket/channel Phoenix, но я не использую предоставленный socket.js - у меня есть свой (очень простой) код, который соединяется с каналами и темами. Тем не менее, я не могу получить сокет, который будет продолжаться больше минуты или около того. Есть ли способ определить тайм-аут для сокетов? У меня нет каких-либо специальных конфигураций в Phoenix стороне (все стандартные согласно документации)Сброс в Websocket слишком скоро
Мой Javascript код выглядит следующим образом:
const ws = new WebSocket(sock_url);
ws.onmessage = (msg) => {
const { payload, event } = JSON.parse(msg.data);
if (!event.startsWith("phx_")) {
onMessage(payload.body);
}
};
ws.onclose = (code, reason) => {
onClose(code, reason);
};
ws.onopen =() => {
ws.send(JSON.stringify({
topic: `users_socket:${user_id}`,
event: "phx_join",
payload: {},
ref: '1'
}));
};
Update: Я закончил с использованием сокета. js-файл, который поставляется вместе с Phoenix, как и все предлагали - он просто делает все, что мне нужно. Спасибо всем, кто ответил :)
Есть ли причина, по которой вы не просто используете предоставленный модуль феникс-сокета? –
Это часть более крупной библиотеки, и запрос заключался в том, чтобы код был прост и свободен от «внешних» библиотек. Но если у меня возникнет слишком много проблем такого типа, я могу в конечном итоге использовать JS-код, который поставляется вместе с phoenix. – user1595077