Websocket 如何设置ApolloServer和SubscriptionServer以在graphql中使用http和ws

Websocket 如何设置ApolloServer和SubscriptionServer以在graphql中使用http和ws,websocket,graphql,react-apollo,apollo-server,graphql-subscriptions,Websocket,Graphql,React Apollo,Apollo Server,Graphql Subscriptions,我一直在关注文档并实现订阅传输ws插件。我最大的困惑是区分http://和ws://的graphql url。在上面的示例中,ApolloServer似乎正在被SubscriptionServer取代。但是,如果我只想在特殊情况下使用WebSocket,那么我是否仍然需要两者?或者是SubscriptionServer同时处理,并在后台执行一些魔术,根据订阅是否被调用来确定使用哪个订阅?apollo server结合了以下几个工具:提供一些,并使用web framework作为其默认web服务器

我一直在关注文档并实现
订阅传输ws
插件。我最大的困惑是区分
http://
ws://
的graphql url。在上面的示例中,
ApolloServer
似乎正在被
SubscriptionServer
取代。但是,如果我只想在特殊情况下使用WebSocket,那么我是否仍然需要两者?或者是
SubscriptionServer
同时处理,并在后台执行一些魔术,根据订阅是否被调用来确定使用哪个订阅?

apollo server
结合了以下几个工具:提供一些,并使用web framework作为其默认web服务器实现

subscriptions transport ws
是一个GraphQL WebSocket服务器和客户端,用于促进GraphQL在WebSocket上的查询、转换和订阅

订阅传输ws是GraphQL的扩展,您可以将它用于任何GraphQL客户端和服务器(不仅仅是Apollo)

因此,
ApolloServer
没有被
SubscriptionServer
取代

在不使用ApolloServer的情况下,您需要自己使用
express.js
graphqlExpress
graphiqlExpress
cors
中间件来设置GraphQLHTTP服务器。就像这样


如果要创建订阅服务器,则需要创建HTTP服务器并将其传递给
SubscriptionServer
constructor for

请记住,订阅传输ws不是主动维护的:·订阅传输ws库不是主动维护的。建议您改用graphql ws库。有关详细信息,请阅读GraphQL over WebSockets公告“