【问题标题】:Connecting remote client to Phoenix channel将远程客户端连接到 Phoenix 通道
【发布时间】:2018-09-24 17:16:15
【问题描述】:

我正在尝试将我的前端与 Phoenix 1.3 (localhost:4000) 分开,并且我正在 localhost:3000 上运行 React。

我一辈子都无法连接到凤凰城。我得到了错误:

WebSocket connection to 'ws://localhost:4000/socket/websocket?token=undefined&vsn=2.0.0' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

我正在使用以下客户端:

let socket = new Socket("ws://localhost:4000/socket", {params: {token: window.userToken}})

    socket.connect();

    // Now that you are connected, you can join channels with a topic:
    let channel = socket.channel("coin:lobby", {});
    channel
      .join()
      .receive("ok", resp => {
        console.log("Joined successfully", resp);
      })
      .receive("error", resp => {
        console.log("Unable to join", resp);
      });

我可以在终端中使用 wsta 进行连接,并且收到了很好的响应。我认为这可能是某种 CORS 问题,但我已经实现了 cors_plug elixir lib,但我仍然遇到问题。有什么建议吗?

【问题讨论】:

    标签: reactjs websocket phoenix phoenix-channels


    【解决方案1】:

    你要先安装凤凰客户端

    npm install phoenix --save

    import {Socket} from "phoenix"; in your component 
    

    let socket = new Socket("ws://localhost:4000/socket");

    socket.connect();
    let channel = socket.channel("chat_room:lobby", {});
    console.log(channel);
    

    我也遇到了同样的问题,用同样的代码解决了。

    请参考此链接enter link description here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-26
      • 2013-04-28
      • 2020-03-31
      • 2020-07-04
      • 2013-06-25
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      相关资源
      最近更新 更多