为啥我的 Absinthe GraphQL 订阅不起作用?
Posted
技术标签:
【中文标题】为啥我的 Absinthe GraphQL 订阅不起作用?【英文标题】:Why my Absinthe GraphQL Subscription doesn't work?为什么我的 Absinthe GraphQL 订阅不起作用? 【发布时间】:2020-05-25 09:01:13 【问题描述】:我的架构:
subscription do
@desc "Subscribe to drawing change"
field :drawing_change, :drawing do
# arg(:drawing_id, non_null(:id))
config(fn _args, _resolution ->
:ok, topic: "*"
end)
end
end
当我这样做时
subscription
drawingChange
data
name
我收到此错误TypeError: Failed to fetch
日志:
[debug] Processing with Absinthe.Plug
Parameters: %"query" => "subscription \n drawingChange \n data\n name\n \n", "variables" => nil
Pipelines: [:api]
[debug] ABSINTHE schema=DrawingApiWeb.Schema.Schema variables=%
---
subscription
drawingChange
data
name
---
[info] Chunked 200 in 107ms
这是我的其余设置:
用户套接字:
use Absinthe.Phoenix.Socket, schema: DrawingApiWeb.Schema.Schema
结束语:
use Absinthe.Phoenix.Endpoint
路由器:
forward "/graphiql", Absinthe.Plug.GraphiQL,
schema: DrawingApiWeb.Schema.Schema,
socket: DrawingApiWeb.UserSocket
所有这一切都发生在我对任何上下文进行任何更改之前。无论问题是什么,它都应该在设置中。我已按照 Absinthe-GraphQL 书和 Pragmatic Studio 视频中的确切说明进行操作,并使用 https://hexdocs.pm/absinthe/subscriptions.html 进行了验证
还是同样的错误。 提前感谢您的帮助。
【问题讨论】:
【参考方案1】:我找到了。
我没有在 Graphiql 中设置ws://localhost:4000/socket
。
现在一切都好。 干杯
【讨论】:
以上是关于为啥我的 Absinthe GraphQL 订阅不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
拨号器(通过 Dialyxir)从 Absinthe (GraphQL) 路由的 `forward` 命令发出有关“但此值不匹配”的警告。如何解决?
为啥我的 GraphQL 订阅在本地服务器上运行,但在实时服务器上部署时却不行