gpt4 book ai didi

javascript - Phoenix/EmberJS Websocket 访问与操作

转载 作者:行者123 更新时间:2023-11-30 16:31:37 26 4
gpt4 key购买 nike

我有一个基本的 Ember 前端应用程序,它通过初始化程序中的 websocket 连接到 Phoenix 后端。接下来,我希望能够使用 chan.push("new_msg", {body: "test"}) 向 Phoenix channel 发送消息。

显然,我无法从初始化程序本身执行此操作,但这是唯一定义“chan”的地方,我不知道如何从其他位置访问它。

我希望这发生在 {{input action="sendMessage()"}} 的操作上,所以我尝试了几种方法,例如将 sendMessage() 初始化器中的函数并在组件操作中调用它等...但是每当我尝试从另一个文件访问初始化器(反之亦然)时,我都会收到一条错误消息,指出该函数未定义。我知道当然不应该以这种方式使用初始值设定项,我只是不知道将代码放在哪里以便我可以访问我定义的 websocket 连接。

与此问题相关的大部分代码与您将在本指南中看到的相符:http://chrismcg.com/2015/07/04/teaching-ember-cli-to-talk-to-phoenix-sockets/ .不幸的是,这不包括如何从前端为初学者使用这个 websocket 连接。

最佳答案

这听起来像是服务工作,请参阅 http://guides.emberjs.com/v2.1.0/applications/services/ 上的相应文档.该服务将有一个 chan 属性来保存 channel 和 sendMessage 操作,然后您只需在正确的上下文中注入(inject)该服务并执行类似于:

{{input action=(action service.sendMessage)}}

那是使用 closure actions直接触发服务的操作。

关于javascript - Phoenix/EmberJS Websocket 访问与操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33252043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com