Ich habe einen Server, auf dem die Phoenix Framework ist installiert. Jetzt versuche ich, die vom Server gesendeten Daten mit deren Hilfe abzurufen Client-JS-Bibliothek Aber ich stecke in der Mitte fest, es gibt keine Dokumentation / Anleitung, was auch immer, um es zu implementieren und auf der Client-Seite auszuführen.
Ich habe in den letzten Stunden gegraben, aber leider gibt es fast keine Ressourcen für das, wonach ich suche.
Derzeit habe ich eine HTML / JS-Seite, auf der ich eine Vorschau der mit der Clientbibliothek abgerufenen Daten anzeigen möchte.
Antworten:
1 für die Antwort № 1Die Mechanik ist ziemlich gut abgedeckt die Führer.
Wenn Sie eine Verbindung zum Kanal herstellen, können Sie Folgendes tun:
channel = socket.channel("yourchannel", {});
channel.join().receive("ok", successFunction);
channel.on("all_users", function(users) { /* do something with users */ });
channel.push("get_all_users", {});
In Ihrem UserChannel:
def handle_in("get_all_users", payload, socket) do
users = Repo.all(User)
users_json = Poison.encode!(users)
{:reply, {:ok, users_json}, socket}
end
Grundsätzlich werden die "handle_in" -Zugriffe Ihres Channels verwendetAnforderungen von Ihrem Client, ähnlich wie ein Controller HTTP-Anforderungen behandeln würde. Sie stimmen mit dem Muster der eingehenden Anforderung überein und antworten dann mit einem Ergebnis, wenn eine Antwort vorliegt. Wenn Sie nicht antworten müssen, kehren Sie zurück {:noreply, socket}
Anstatt von {:reply, {:ok, reply}, socket}
.