【问题标题】:Trying to connect to a Phoenix channel, but getting SOCKET is undefined尝试连接到 Phoenix 频道,但获取 SOCKET 未定义
【发布时间】:2018-08-20 00:14:47
【问题描述】:

我是 Phoenix 的新手,我正在努力学习 Channels

我在 Angularjs 中的前端在端口 :3000 上运行。还有我在端口 :4000 上运行的后端。

我收到未定义套接字的错误。

index.html

<script src="/node_modules/phoenix/priv/static/phoenix.js"></script>


<script>
var socket = new Socket("ws://localhost:4000", {
  logger: ((kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }),
  transport: WebSocket
});
socket.connect();</script>

【问题讨论】:

  • 听起来phoenix.js 在该路径中不存在。你能检查一下路径吗?
  • @Dogbert 是的,先生,我仔细检查了它。它在那里
  • 你的socket连接url好吗? "ws://localhost:4000/socket" 怎么样?您是否使用本地设置,所以您真的可以联系到localhost

标签: angularjs elixir phoenix-framework


【解决方案1】:

通过script-Tag 直接包含phoenix.js 文件后,您将需要使用包含所有导出的phoenix 模块的window.Phoenix 对象

<script>
var socket = new Phoenix.Socket("ws://localhost:4000", {
  logger: ((kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }),
  transport: WebSocket
});
socket.connect();
</script>

包含在window.Phoenix

  • Ajax
  • LongPoll
  • Presence
  • Socket
  • Channel

【讨论】:

    猜你喜欢
    • 2016-11-14
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2021-11-11
    • 2018-06-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多