【发布时间】:2017-06-16 18:01:41
【问题描述】:
我已经设置了一个标准的 Phoenix websocket/channel 环境,但我没有使用提供的 socket.js - 我有自己的(非常简单的)代码来连接到频道和主题。但是,我无法让套接字持续超过一分钟左右。有什么方法可以定义套接字的超时时间吗?我在 Phoenix 端没有任何特殊配置(按照文档的所有标准)
我的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'
}));
};
更新:我最终使用了 Phoenix 附带的 socket.js 文件,正如大家所建议的那样——它只是做了我需要的一切。感谢所有回答的人:)
【问题讨论】:
-
你有什么理由不只是使用提供的凤凰插座模块吗?
-
它是一个更大的库的一部分,其要求是保持代码简单且不受“外部”库的影响。但是如果我最终遇到太多此类问题,我可能最终会使用 phoenix 附带的 JS 代码。
标签: javascript sockets websocket elixir phoenix-framework