Apollo使用HTTP代替WebSocket订阅的问题。
创始人
2024-09-09 13:01:31
0

可以在创建GraphQL HttpLink时添加一个websocket链接,以便在使用订阅时利用WebSocket。下面是一个示例代码:

import { split, HttpLink } from '@apollo/client';
import { getMainDefinition } from '@apollo/client/utilities';
import { WebSocketLink } from '@apollo/client/link/ws';

const httpLink = new HttpLink({
  uri: 'http://localhost:4000/graphql',
});

const wsLink = new WebSocketLink({
  uri: 'ws://localhost:4000/graphql',
  options: {
    reconnect: true
  }
});

const splitLink = split(
  ({ query }) => {
    const definition = getMainDefinition(query);
    return (
      definition.kind === 'OperationDefinition' &&
      definition.operation === 'subscription'
    );
  },
  wsLink,
  httpLink,
);

const client = new ApolloClient({
  link: splitLink,
  cache: new InMemoryCache()
});

此代码中,我们使用splitLink将HTTP链接和WebSocket链接连接在一起。split函数会检查查询是否属于订阅类型,如果是,则使用WebSocketLink,如果不是,则使用HttpLink。WebSocketLink中的选项可以被配置,以便在需要时自动重新连接。

如果您已经使用了GraphQL WebSocket链接,但要切换到使用纯HTTP链接,则需要更改服务器端的代码来仅使用HttpLink。

相关内容

热门资讯

透视透视(wepOke)外挂透... 透视透视(wepOke)外挂透明挂辅助app(wepoke插件)从来真的是有挂(详细透视科技教程);...
微扑克系统发牌规律!wepok... 1、微扑克系统发牌规律!wepoke有软件吗,wpk俱乐部有假,教你攻略(有挂详情);代表性(透视辅...
透视攻略(wePoKe)外挂透... 透视攻略(wePoKe)外挂透明挂辅助代打(wepoke一定有挂)原来真的是有挂(详细透视详细教程)...
智星德州菠萝偷偷看牌功能!德州... 智星德州菠萝偷偷看牌功能!德州ai辅助器,来玩德州app有挂,黑科技教程(有挂详情)是一款可以让一直...
透视存在(wePOKE)透明挂... 自定义wepokeai辅助系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
wepoke是真的有挂!来玩a... wepoke是真的有挂!来玩app德州安卓有用吗,wpk辅助nzt,教你攻略(有挂了解)1、这是跨平...
透视好友房(wePOke)外挂... 透视好友房(wePOke)外挂透明挂辅助器(wepok软件透明挂)原生是有挂(详细透视透明挂教程)是...
wepoke智能ai!微扑克a... 一、微扑克ai辅助器苹果版简介了解软件请加微:136704302微扑克ai辅助器苹果版是一款在线扑克...
透视美元局(WEpoke)透视... 透视美元局(WEpoke)透视辅助app(wepoke有辅助挂)最初有挂(详细透视技巧教程)这是由厦...
微扑克ai辅助工具!轰趴大菠萝... 微扑克ai辅助工具!轰趴大菠萝十三水辅助,wpk辅助器是真的假的,高科技教程(有挂详情);人气非常高...