简介
subscriptions-transport-sse
是一个用于处理 SSE(Server-Sent Events,服务端发送事件)的 GraphQL 传输库。通过这个库,可以使用 SSE 实现服务器与客户端之间的实时通信。
安装
--- ------- ---------------------------
使用
服务端
假设已经有一个 GraphQL 服务器,并且已经实现了订阅功能。那么,如果要使用 SSE 作为传输方式,需要在服务端进行如下操作:
引入
subscriptions-transport-sse
包和graphql-subscriptions
包:----- - ------ - - -------------------------------------- ----- - ------------------ - - --------------------------------------- ----- - -------- --------- - - ------------------- ----- - ------------ - - ---------------- ----- - -------------------- - - ------------------------- ----- - ------ - - ---------------------------------
创建
PubSub
对象,并将其传递给SubscriptionServer
:----- ------ - --- --------- ----- ------------------ - -------------------------- - ------- ----------- -------- ---------- ------------ --------- ------- -- -- ---------- -------- - ------ -- --- -- - ------- ----------- ----- ----------------- - --
在 GraphQL Schema 中添加 Subscription 类型:
---- ------------ - --------------- ------ -
在 Resolver 中实现 Subscription:
------------- - --------------- - ---------- -- -- --------------------------------- -- --
在客户端订阅:
----- --- - -------------------------------------- ----- ----------- - --- ----------------- ---------------------------------------- ------- -- - ----- - ---- - - ----------------------- ------------------ ---
客户端
客户端使用 subscriptions-transport-sse
的方式比较简单,只需要创建一个 SSE 连接并监听消息即可。下面是一个完整的例子:
----- --- - -------------------------------------- ----- ----------- - --- ----------------- ---------------------------------------- ------- -- - ----- - ---- - - ----------------------- ------------------ ---
总结
通过本文的介绍,读者可以了解到如何使用 subscriptions-transport-sse
实现 GraphQL 的订阅功能,并且理解了 SSE 的原理和用法。希望本文能够对大家有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/52737