小编Jus*_*i A的帖子

来自 Docker 容器的出站 WebSocket 连接不起作用

我有一个在 Docker 上运行的简单 TypeScript 程序,该程序想要打开与外部 Websocket 服务器的 Websocket 连接。像这样的东西

-----------------------                   ------------------------------
| My Local Docker     |                   | my.ws-server.somewhere.com |                   
|                     |                   |                            |
|    WS client        |---> Internet----->| WS server                  |
-----------------------                   ------------------------------
Run Code Online (Sandbox Code Playgroud)

当我ts-node test.js在 Docker 之外的开发环境中使用 WS 客户端运行 ( ) 代码时,它工作正常并且可以毫无问题地连接:

let ws = new WebSocket("ws://my.ws-server.somewhere.com", [], { })
ws.onopen = () => {
  console.log('Connection opened ok! ')
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将这个东西放入 Docker 并在那里运行时,连接被拒绝。程序按其应有的方式开始连接尝试,但只是超时,并且连接从未打开。我猜这与 Docker 网络有关?如果我想打开一个从Docker到外界的出站连接,我需要定义一些路由什么的吗?

我的 Docker 设置

Dockerfile

FROM node:12.18.3

RUN mkdir /src

WORKDIR /src
ADD ./package.json …
Run Code Online (Sandbox Code Playgroud)

websocket node.js typescript docker

5
推荐指数
1
解决办法
4060
查看次数

标签 统计

docker ×1

node.js ×1

typescript ×1

websocket ×1