Bagaimana cara menyiarkan pesan dari Pengendali Phoenix ke Saluran?

Apakah ada cara untuk menyiarkan pesan ke saluran dari luar saluran itu?

Mungkin sesuatu seperti Channel.broadcast topic, event, data?

Saya melihat sesuatu seperti ini di sini tetapi versi final Phoenix.Channel.broadcast/3 (mulai hari ini) menggunakan soket yang menyiratkan saluran tersebut dan topik.


person Philip Claren    schedule 27.11.2015    source sumber


Jawaban (1)


Anda dapat menggunakan MyApp.Endpoint.broadcast(topic, event, msg) untuk itu.

Periksa http://hexdocs.pm/phoenix/Phoenix.Endpoint.html

person manukall    schedule 27.11.2015
comment
Perhatikan jika Anda menjalankan ini dari iex, Anda harus memulai aplikasi Anda dengan iex -S mix phoenix.server agar dapat berfungsi. - person Gazler; 27.11.2015
comment
Itu adalah sesuatu yang mungkin seharusnya saya temukan sendiri :-) ... dan saya mencari di Google dengan sangat keras tetapi hal ini tidak muncul. Mungkin yang terbaik adalah dia ada di sini sekarang. - person Philip Claren; 27.11.2015
comment
Mengkloning contoh ini github.com/chrismccord/phoenix_chat_example dan berfungsi dengan baik tetapi jika saya masuk ke iex -S mix lalu menjalankan Chat Chat.Endpoint.broadcast "rooms:lobby", "new:msg", %{"user" => "Boris", "body" => "Tes msg"} tidak muncul pesannya di browser - person Boris Barroso; 09.03.2016
comment
@BorisBarroso Anda perlu melakukan iex -S mix phoenix.server untuk memastikan Pheonix juga dapat dijalankan. Anda tidak dapat menyiarkan jika Anda hanya melakukan iex -S mix karena server tidak memulai. - person ankush981; 08.09.2016
comment
Terima kasih @Gazler! Saya tidak mengetahuinya dan saya menjadi gila saat mencoba mengirim pesan dari iex! - person jacklin; 26.10.2016
comment
Dalam contoh yang berbeda terkadang room:lobby, dan terkadang rooms:lobby. Sulit untuk menemukan perbedaannya, dan siarannya tidak berfungsi, tidak ada cara mudah untuk melakukan debug. - person denis.peplin; 15.11.2018