Elixir 如何取消通过凤凰城的运输路线?

Elixir 如何取消通过凤凰城的运输路线?,elixir,phoenix-framework,Elixir,Phoenix Framework,我正在使用,在路由方面遇到一些问题 在user\u socket.ex文件中: defmodule Chat.UserSocket do use Phoenix.Socket channel "rooms:*", Chat.RoomChannel transport :websocket, Phoenix.Transports.WebSocket def connect(_params, socket) do {:ok, socket} end def i

我正在使用,在路由方面遇到一些问题

user\u socket.ex
文件中:

defmodule Chat.UserSocket do
  use Phoenix.Socket

  channel "rooms:*", Chat.RoomChannel

  transport :websocket, Phoenix.Transports.WebSocket

  def connect(_params, socket) do
    {:ok, socket}
  end

  def id(_socket), do: nil
end
我遇到的问题是在配置下

transport:websocket,凤凰城。Transports.websocket

设置传输基本上类似于目录。要通过此套接字进行连接,客户端必须在其
URL
的末尾具有
/websocket
。我正试图优雅地消除这一点。我正在尝试让我的websocket服务器由
服务器:端口访问,无需目录要求


我发现,
Chat.UserSocket
模块是从
lib/Chat/endpoint.ex
调用的:

socket”/Balancer,Chat.UserSocket


这个
套接字也在添加另一个必需的目录。因此,要连接到
websocket
服务器,需要将
/Balancer/websocket
附加到URL。我正试图取消这一要求。我可以缩短单词的长度,并使用
B/W
,但这似乎并不直观。另外,我对Elixir/Phoenix还相当陌生,所以我为这个草率的问题道歉。

为您的WebSocket设置一个单独的路径是个好主意。使用标准80或443端口更好的原因有两个

默认情况下,java脚本中的套接字构造函数添加了
websocket
部分,但您可以轻松地分配所需的内容,如下所示:

socket.endPoint = "/ws"
在端点中,您可以在根上匹配:

socket "/", Chat.UserSocket
在用户套接字中,您需要使用:

transport :ws, Phoenix.Transports.WebSocket

在JS端,完全可以使用“/”而不使用任何其他路径作为websocket的根目录,但是如果您在本聊天示例中尝试使用它,您将在
chat.PageController.index
上看到请求匹配。然后,您可以尝试使用空atom进行传输
:“
,但它有点不规范,可能无法工作,因此我将坚持使用
/ws
路径。

为您的WebSocket设置单独的路径是一个好主意。使用标准80或443端口更好的原因有两个

默认情况下,java脚本中的套接字构造函数添加了
websocket
部分,但您可以轻松地分配所需的内容,如下所示:

socket.endPoint = "/ws"
在端点中,您可以在根上匹配:

socket "/", Chat.UserSocket
在用户套接字中,您需要使用:

transport :ws, Phoenix.Transports.WebSocket
在JS端,完全可以使用“/”而不使用任何其他路径作为websocket的根目录,但是如果您在本聊天示例中尝试使用它,您将在
chat.PageController.index
上看到请求匹配。然后,您可以尝试使用空atom进行传输
:“
,但它有点粗糙,可能无法工作,因此我将坚持使用
/ws
路径