问题标签 [phoenix-channels]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
phoenix-framework - Presence Chapter Presence Phoenix 1.4.6 Guides raises for Identifier 'socket' 已经被声明
我正在阅读 Phoenix Guides 1.4.6 并且我在Chapter Presence。所以我遵循本章的所有步骤,我的控制台 javascript 对此抱怨:
我的代码在这个repo中。
如果我删除let
它,它会抱怨一个新错误:
testing - 在我的 Phoenix.Channel 的 terminate/2 方法的测试中修复“owner #PID<...> exited with: shutdown”
在我的频道中寻找测试terminate/2 回调的帮助。
测试和设置如下所示:
在 terminate/2 方法中,我只是调用了一个辅助模块,我们将其命名为TerminationHandler
。
TerminationHandler 中的 call/0 方法包含一个数据库查询。它可以看起来像这样,即
这是我定期收到的错误(可能在 10 次运行中出现一次)
将不胜感激任何有关此错误的原因和可能的方法来避免它的回应。
graphql - 为什么我的 Absinthe GraphQL 订阅不起作用?
我的架构:
当我做
我收到这个错误TypeError: Failed to fetch
日志:
这是我的其余设置:
用户套接字:
use Absinthe.Phoenix.Socket, schema: DrawingApiWeb.Schema.Schema
端点:
use Absinthe.Phoenix.Endpoint
路由器:
所有这一切都发生在我对任何上下文进行任何更改之前。无论问题是什么,它都应该在设置中。我已按照 Absinthe-GraphQL 书和 Pragmatic Studio 视频中的确切说明进行操作,并使用https://hexdocs.pm/absinthe/subscriptions.html进行了验证
还是同样的错误。提前谢谢你的帮助。
elixir - 如何在 Phoenix LiveView 中测试 handle_info/2?
问候凤凰 LiveView 奇才!
语境
我们有一个基本的 LiveView 计数器应用程序:https
://github.com/dwyl/phoenix-liveview-counter-tutorial
代码非常简单:
该应用程序按预期工作,请参阅:https://live-view-counter.herokuapp .com/live/counter.ex
测试文件是:
我们一直试图在测试中调用该函数。
所以我们的项目中有未经测试的代码。这是不可取的。
见:https ://codecov.io/gh/dwyl/phoenix-liveview-counter-tutorial/src/master/lib/live_view_counter_web/live/counter.extest/live_view_counter_web/live/counter_test.exs
handle_info/2
我们已经阅读了官方文档https://hexdocs.pm/phoenix_live_view/Phoenix.LiveViewTest.html
但无法理解如何去做。我们缺少什么?
我们真的很想LiveView
在我们的“真实”项目中使用,但我们想确保我们的LiveView
应用程序经过全面测试。
问题
我们如何编写一个测试来调用该handle_info/2
函数?
android - 如何让我的 Android 应用程序连接到后端通道以接收更新并触发设备中的事件?
我正在开发一个 Android 项目,我的应用程序user_channel
在后台连接到并在频道中发生新事件时显示通知。
视图模型代码
存储库代码
活动代码
现在,当应用程序处于前台,并且我的应用程序连接到通道时,我可以检查事件并且它工作正常但是当应用程序被杀死时,应用程序离开通道,我如何保持连接到通道以接收通知? 我还了解到,尽管 Facebook 和 whatsapp 之类的应用程序在后台保持活跃并显示通知,但发布 Android Oreo 后台工作是有限的,它们是如何做到的 - 我如何才能继续实现我的目标,即通过保持连接来接收通知非常感谢后台通道调用 Viewomdel 方法的任何建议,在此先感谢!
elixir - 使用 Phoenix Channels 计时
我正在尝试创建一个仅包含用户可以订阅的时钟的 Phoenix 频道。
我遇到的问题是,当多个客户端加入时,我最终会每秒安排多个滴答声。
我怎样才能只安排一个滴答作响的时钟?
angular - 使用 Phoenix.js 连接 Angular 9
我正在尝试使用phoenix.jsAngular 9
作为客户端连接到现有的 phoenix 通道。
首先,我通过 cli 命令创建了一个 Angular 应用程序,并通过npm install phoenix
. 然后我添加了凤凰路径angular.json
然后我创建了一个服务
最后,在AppComponent
结果我得到
core.js:6237 错误类型错误:无法读取新 AppComponent 处未定义的属性“连接”(app.component.ts:14)
phoenix.js:1 WebSocket 连接到“wss://api.catalx.io/markets/websocket?vsn=2.0.0”失败:WebSocket 握手期间出错:意外响应代码:403
我想我遇到这些错误是因为PhoenixService
无法抓取phoenix.js
?一点帮助表示赞赏!
elixir - 如何指定我自己的 Phoenix Channel JSON 序列化器?
在我的端点中,我得到了如下所示的内容:
我正在尝试用我自己的序列化器替换 JSON 序列化器(在传出消息上对驼峰进行编码)。
我知道这种语法不正确;它应该怎么看?
更新:
所以为了测试的目的,我这样设置:
但它实际上不起作用:
我认为还有一个版本号的额外问题,并且查看源代码,它看起来需要一个元组......
vue.js - 建立连接后,Phoenix Channel 无法与前端保持连接(WebSocket 握手期间出错)
我的 WebSocket 连接有问题。
我在前端使用 Phoenix 作为我的 API 和 Vue + phoenix-socket。
我的浏览器控制台如下所示:
等等……
如您所见,可以建立连接并且数据通过,但随后会发送错误。
所以我检查了凤凰:
看起来连接被拒绝,因为参数中没有令牌,但我真的不明白为什么。
我只在套接字连接时检查身份验证,因此一旦建立连接,令牌应该是完全不需要的。
这是我的 user_socket.ex:
渠道代码:
和 Vue.js 代码: