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。

相关内容

热门资讯

实测教程(WPK辅助挂)外挂透... 实测教程(WPK辅助挂)外挂透明挂辅助插件(辅助挂)辅助透视(有挂教程)-哔哩哔哩;原来确实真的有挂...
实测发现!德扑之星规律(Wep... WePoker透视辅助版本解析‌,实测发现!德扑之星规律(WepokE)外挂透明挂辅助软件(透视)教...
必备科技(德扑窥牌)外挂透明挂... 必备科技(德扑窥牌)外挂透明挂辅助器(辅助挂)发牌机制(真的有挂)-哔哩哔哩准备好在德扑窥牌 ia的...
九分钟了解(约局互娱)外挂透明... 九分钟了解(约局互娱)外挂透明挂辅助脚本(透视)确实真的有挂(2024已更新)(哔哩哔哩);约局互娱...
一分钟了解(aapoker操作... 一分钟了解(aapoker操作)外挂透明挂辅助脚本(辅助挂)软件透明挂(果真有挂)-哔哩哔哩;玩家在...
透视ai代打!pokerrrr... 透视ai代打!pokerrrr开挂(wEpOke)外挂透明挂辅助软件(辅助挂)必胜教程(真实有挂)-...
透视有挂(德扑线上房间)外挂透... 德扑线上房间新手教程相关信息汇总(需添加指定薇757446909获取下载链接);透视有挂(德扑线上房...
新手必备(wpk必胜)外挂透明... wpk必胜新手教程相关信息汇总(需添加指定薇757446909获取下载链接);新手必备(wpk必胜)...
盘点一款(wePokE)外挂透... 盘点一款(wePokE)外挂透明挂辅助app(透视)辅助透视(确实有挂)-哔哩哔哩;亲们利用一分钟了...
重大通报!Wepoke系统(w... 重大通报!Wepoke系统(wEpOke)外挂透明挂辅助挂(辅助挂)2024新版(有挂方略)-哔哩哔...