【问题标题】:Websockets on elixir code长生不老药代码上的 Websockets
【发布时间】:2018-01-13 00:45:51
【问题描述】:

我目前正在使用 elixir 创建聊天。但是每当我尝试运行该应用程序时,websocket 在服务器控制台上都会出现错误

The client's requested channel transport version "2.0.0" does not match server's version requirements of "~> 1.0"

和浏览器控制台:

WebSocket connection to 'ws://localhost:4000/socket/websocket token=eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJVc2VyOjMiLCJleHAiOjE1MDQ0OTE1NTQsImlhdCI6MTUwMTg5OTU1NCwiaXNzIjoiU2xpbmciLCJqdGkiOiIyNWY5NDZkNy1jNDg5LTRiYWMtYjJkNS0zZDA4OTdkNDU1ZWMiLCJuYmYiOjE1MDE4OTk1NTMsInBlbSI6e30sInN1YiI6IlVzZXI6MyIsInR5cCI6ImFjY2VzcyJ9.nh-DaQfY8OuI0EBE7lILFx6hjm6J_ZrynXHeOLr1-wM-fXnDakqrZUSN1XFQnr0x0KM9WFOkLEQnip5DcsKxXw&vsn=2.0.0' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

【问题讨论】:

    标签: sockets websocket elixir


    【解决方案1】:

    Phoenix 1.3 发布了新版本的传输协议。您似乎已经在项目中包含了新版本的 javascript 客户端,但仍在 Phoenix 1.2 上运行。

    作为一种解决方法,您可以在此处复制和引用旧客户端脚本:https://github.com/phoenixframework/phoenix/blob/v1.2/web/static/js/phoenix.js

    【讨论】:

      【解决方案2】:

      您的 phoenix javascript 库(依赖项)已更新,恕不另行通知。您应该修复版本,使其在 package.json(如果您使用 npm)或 bower.json 中限制为小于 1.3.0,如果您使用 bower 来使用旧实现,或者如果您手动下载 js 文件,则使用narrowtux 解决方案。或者升级凤凰版。

      【讨论】:

      • 我正在使用长生不老药。我怎么做?其指定的 {:phoenix, "~> 1.2.1"},
      • 您说您正在使用浏览器中的 websocket,因此您正在使用 phoenix.js 库。默认情况下,当您使用 mix phoenix.new 创建项目时,项目根目录中的 package.json 会将这个 javascript phoenix.js 依赖项指向 file:deps/phoenix 并且应该可以工作,但是如果有人更改它可能会指向 npmjs.org回购。将其指向默认值或将其设置为如下"phoenix": "1.2.1",。如果前端是另一个项目,则在 package.json 文件中进行此更改
      猜你喜欢
      • 2016-02-01
      • 2016-08-26
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多