Я вижу базовый пример библиотеки WebSockex для Elixir здесь, но он не объясняет, как я могу предоставить мой собственный веб-сокет в Интернет. На этот вопрос есть ответы, объясняющие как общаться с существующим веб-сокетом извне, но я хочу открыть свой собственный веб-сокет. На самом деле я использую websockex как часть приложения Phoenix, так что, возможно, здесь могут помочь кусочки Phoenix?
Я, очевидно, знаю комбинацию ip:port моего приложения phoenix, поэтому, учитывая это, как мне открыть веб-сокет websockex на этом ip:port? Другими словами, что я должен передать в качестве 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
Обратите внимание, что мне нужно предоставить необработанный веб-сокет, а не канал Phoenix, поскольку потребитель не понимает каналы Phoenix. Если Phoenix сможет предоставить необработанный веб-сокет, я тоже рассмотрю это решение.
Если ни Phoenix, ни WebSockex не могут помочь, какие у меня есть варианты?