我在这里看到了 Elixir 的 WebSockex 库的基本示例,但它并没有真正解释我如何将自己的 websocket 公开到互联网。这个问题的答案解释了如何在外部与现有的 websocket 聊天,但我想公开我自己的 websocket。我实际上是在使用 websockex 作为 Phoenix 应用程序的一部分,所以 Phoenix 的一些可能在这里有所帮助?
我显然知道我的 phoenix 应用程序的 ip:port 组合,所以鉴于这些,我如何在该 ip:port 上公开一个 websockex websocket?换句话说,我应该传递什么作为 URL?在这个基本示例代码中:
defmodule WebSocketExample do
use WebSockex
def start_link(url, state) do
WebSockex.start_link(url, __MODULE__, state)
end
def handle_frame({type, msg}, state) do
IO.puts "Received Message - Type: #{inspect type} -- Message: #{inspect msg}"
{:ok, state}
end
def handle_cast({:send, {type, msg} = frame}, state) do
IO.puts "Sending #{type} frame with payload: #{msg}"
{:reply, frame, state}
end
end
请注意,我需要公开原始 websocket,而不是 Phoenix 频道,因为消费者不了解 Phoenix 频道。如果 Phoenix 可以公开原始 websocket,那么我也会认为这是一个解决方案。
如果 Phoenix 和 WebSockex 都无法提供帮助,我有什么选择?