私はこの時点で、接続するときに、これらの値をパラメータとして送信することをお勧めします。それはおそらく、Plug.Conn
から情報を取得して何とかJSに渡すことを意味するか、何らかの理由ですべてのクライアント側でそれを行うことを意味します。
とにかくそこからソケットに入れるには、この2つのうちのどちらかを実行します。ソケットレベルでのJS側の
:チャネルレベルでのJS側の
var socket = new Socket("/socket", {ip: "127.0.0.1", host: "localhost"})
:あなたのソケットモジュールで
var channel = socket.channel("topic:subtopic", {ip: "127.0.0.1", host: "localhost"})
:
def connect(_params = %{"ip" => ip, "host" => host}, socket) do
socket =
socket
|> assign(:ip, ip)
|> assign(:host, host)
{:ok, socket}
end
やであなたのチャンネルモジュール:
def join("topic:subtopic", _params = %{ip: ip, host: host}, socket) do
socket =
socket
|> assign(:ip, ip)
|> assign(:host, host)
{:noreply, socket}
end
すべてのチャンネルの情報が必要な場合は、ソケットレベルで行うのが理にかなっています。私はかなりソケットのオブジェクトで終わるどちらかの方法を確信しているので、複数のチャネルのために同じソケットを使用している場合は、同じ割り当てを参照してください。
[phoenix-frameworkのソケットからリモート\ _ipを取得する方法は?](http://stackoverflow.com/questions/33276202/how-to-get-remote-ip-from-socket-in- phoenix-framework) – PatNowak