ApolloServerWebSocketConnectionDockerComposeExpose问题
创始人
2024-09-09 13:01:12
0

在使用Docker Compose部署Apollo Server应用时,可能会遇到WebSocket连接无法使用的问题。这个问题经常发生是因为WebSocket连接的端口未暴露(Expose)给Docker Compose。下面是如何解决这个问题的步骤:

  1. 将WebSocket连接的端口(默认为4000)添加到Docker Compose文件中的expose字段:
version: '3'
services:
  apollo-server: 
    expose:
      - "4000"
    ...
  1. 在Docker Compose中将WebSocket连接的端口映射到主机的端口:
version: '3'
services:
  apollo-server:
    expose:
      - "4000"
    ports:
      - "4000:4000"
    ...
  1. 在Apollo Server中将WebSocket服务器地址指定为localhost。这可以通过在创建Apollo Server实例时传递一个额外的参数来完成:
const server = new ApolloServer({
  typeDefs,
  resolvers,
  subscriptions: {
    path: '/subscriptions',
    onConnect: (connectionParams, webSocket) => {
      console.log('Client connected');
    },
    onDisconnect: (webSocket, context) => {
      console.log('Client disconnected');
    },
  },
});
  1. 在Apollo Client中将WebSocket连接的URL设置为连接到Apollo Server的主机的URL(通过localhost或IP地址):
import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client';
import { WebSocketLink } from "@apollo/client/link/ws";

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

const httpLink = new HttpLink({ uri: '/graphql' });

const client = new ApolloClient({
  link: wsLink.concat(httpLink),
  cache: new InMemoryCache(),
});

以上是解决Apollo Server WebSocket Connection Docker Compose Expose问题的步骤。通过在Docker Compose文件中暴露WebSocket连接的端口并

相关内容

热门资讯

突发!随意玩辅助器视频透视挂!... 突发!随意玩辅助器视频透视挂!果然真的有辅助下载(有挂工具)-哔哩哔哩1、下载好随意玩辅助器视频透视...
截至发稿!微信卡五星辅助器!真... 截至发稿!微信卡五星辅助器!真是真的是有辅助挂(发现有挂)-哔哩哔哩1、截至发稿!微信卡五星辅助器!...
做出回应!衢州都莱破解器!真是... 做出回应!衢州都莱破解器!真是有挂辅助软件(有挂实锤)-哔哩哔哩小薇(辅助器软件下载)致您一封信;亲...
今天下午!八仙游戏辅助!一贯存... 今天下午!八仙游戏辅助!一贯存在有辅助软件(有挂讲解)-哔哩哔哩1、进入到八仙游戏辅助是否有挂之后,...
经调查!道游辅助脚本!确实是真... 经调查!道游辅助脚本!确实是真的辅助脚本(有挂存在)-哔哩哔哩1、全新机制【道游辅助脚本ai辅助工具...
据相关数据显示!陕麻圈黑科技!... 据相关数据显示!陕麻圈黑科技!切实是有辅助软件(有挂详细)-哔哩哔哩1、进入游戏-大厅左侧-新手福利...
不少玩家反映!福州十八扑有外g... 不少玩家反映!福州十八扑有外g挂吗!其实有挂辅助修改器(详细教程)-哔哩哔哩1、完成福州十八扑有外g...
记者获悉!福建兄弟13水辅助!... 记者获悉!福建兄弟13水辅助!总是是真的辅助安装(有挂方式)-哔哩哔哩1、完成福建兄弟13水辅助辅助...
截至目前!天天贵阳app破解版... 截至目前!天天贵阳app破解版!都是真的有辅助插件(有挂解惑)-哔哩哔哩1、实时天天贵阳app破解版...
截至发稿!掌中乐游戏中心云南辅... 截至发稿!掌中乐游戏中心云南辅助!一贯存在有辅助app(有挂规律)-哔哩哔哩掌中乐游戏中心云南辅助是...