我有一個基本的Ember前端應用程序,它通過初始化程序中的websocket連接到Phoenix後端。接下來,我希望能夠使用chan.push("new_msg", {body: "test"})
發送消息給Phoenix頻道。Phoenix/EmberJS使用動作的Websocket訪問
顯然,我不能從初始化程序本身做到這一點,但這是'chan'定義的唯一位置,我不知道如何從另一個位置訪問它。
我希望這發生在{{input action="sendMessage()"}}
的動作中,所以我嘗試了幾種方法,例如將sendMessage()
函數放入初始化程序並在組件操作等中調用它。但是,無論何時我嘗試訪問初始化程序從另一個文件(反之亦然)我得到一個錯誤,說該函數沒有定義。我知道初始化器不應該以這種方式使用,我只是不知道在哪裏放置代碼,以便我可以訪問我定義的websocket連接。
與此問題相關的大部分代碼與您將在本指南中看到的內容相匹配:http://chrismcg.com/2015/07/04/teaching-ember-cli-to-talk-to-phoenix-sockets/。不幸的是,這並不包括如何從初學者的前端使用這個websocket連接。
你的動作語法是錯誤的,應該是'{{input action =「sendMessage」}}' – locks
是的,我一直在滑入這一個。壞習慣。謝謝。 – Nodal