这篇短文源于解决版本兼容性问题. 这项目已经半年没有Commit了, 和最新的 有兼容性问题. 最新的 的GraphQL订阅使用了 AsyncIterator
, PubSubEngine
增加了一个新的接口asyncIterator
, 如下:
export interface PubSubEngine { publish(triggerName: string, payload: any): boolean; subscribe(triggerName: string, onMessage: Function, options: Object): Promise; unsubscribe(subId: number): any; asyncIterator (triggers: string | string[]): AsyncIterator ;}
如何运行
左边开两个GraphiQL的窗口, 右侧登录 rabbitmqadmin 图形管理界面. http://localhost:15672, 找到下面这个Exchange:
点击进入
然后就可以这样发消息了
Demo
顺带发一个能跑的DEMO:
说明
这里是修改的版本: 对 做了修改, 使其支持如下接口:
asyncIterator(triggers: string | string[]): AsyncIterator ;
RabbitMQ 默认安装, 不做任何修改. Ubuntu 下的安装命令为 apt-get install rabbitmq-server
Github Issue:
变更:
2017-09-09:
1.使用rabbitmq-pub-sub
的 RabbitMqSingletonConnectionFactory
替换RabbitMqConnectionFactory
,否则不会重用连接, 并且创建生大量的Queue 2017-09-10:
现在graphql-rabbitmq-subscriptions
包的兼容性已经修复, 直接yarn add graphql-rabbitmq-subscriptions
即可. Pull Request
: