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
路径