从 node.js 连接到 kubernetes 上的 ejabberd 运行 时出错

Error Connecting to ejabberd running on kubernetes from node.js

我正在尝试创建一个聊天应用程序来增强我的投资组合。 为此,我使用 xmpp 作为我的消息服务器。所以,我运行使用以下配置在 kubernetes 上使用 ejabberd

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ejabberd-depl
  labels:
    app: ejabberd
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ejabberd
  template:
    metadata:
      labels:
        app: ejabberd
    spec:
      containers:
      - name: ejabberd
        image: ejabberd/ecs
        ports:
        - containerPort: 5280
        - containerPort: 5222
        - containerPort: 5269
---
apiVersion: v1
kind: Service
metadata:
  name: ejabberd-srv
spec:
  selector:
    app: ejabberd
  ports:
    - name: ejabberd
      protocol: TCP
      port: 5222
      targetPort: 5222
    - name: admin
      protocol: TCP
      port: 5280
      targetPort: 5280
    - name: encrypted
      protocol: TCP
      port: 5269
      targetPort: 5269

我正在使用该服务向我的整个应用公开 ejabberd。

正在使用包“@xmpp/client”连接到 ejabberd“

import {client, xml, jid} from '@xmpp/client'


const xmpp = client({
      service: "wss://ejabberd-srv:5222/xmpp-websocket",
      domain: "ejabberd-srv",
      username: "username",
      password: "password",
    })

    xmpp.on('online', () => {
      console.log("connected to xmpp server");

    })

    xmpp.on('error', (err) => {
      console.log("Connected but error");
      
    })

    xmpp.start().catch(() => console.log("error in xmpp start"));

当我 运行 应用程序 node.js 端不断给我错误提示“SSL 错误版本号 /deps/openssl/ssl/record/ssl3_record.c:354:”

但是当我检查 ejabberd 的日志时,它清楚地显示“已接受连接”

我对kubernetes和node.js几乎一无所知,但我有ejabberd和docker的经验,所以也许我可以提供一些有用的提示:

查看您显示的配置,并假设您使用来自 https://github.com/processone/docker-ejabberd/blob/master/ecs/conf/ejabberd.yml#L38

的默认 ejabberd 配置

在该配置文件中说:

  • 端口 5222 用于 XMPP C2S 连接
  • 5280 用于 HTTP 连接
  • 5443用于HTTPS,包括WebSocket, BOSH, web admin...

service: "wss://ejabberd-srv:5222/xmpp-websocket",

在您的情况下,如果您的客户端使用 WebSocket 连接到 ejabberd,您应该在 kubernetes 中打开 5443 端口并告诉您的客户端使用 URL,例如“wss://ejabberd-srv :5443/ws",