我正在运行 ejabberd 17.12。它运行良好。
通过此配置,我设法使用 JS 控制台和 XMPP 客户端从我的浏览器打开非安全的 Web 套接字连接:
port: 5280
ip: "::"
module: ejabberd_http
request_handlers:
"/ws": ejabberd_http_ws
"/bosh": mod_bosh
"/api": mod_http_api
## "/pub/archive": mod_http_fileserver
web_admin: true
## register: true
captcha: false
我需要有安全的网络套接字连接,因此我将其添加到上述配置中:
tls: true
certfile: "/opt/ejabberd/conf/server.pem"
现在 Web 套接字连接不再起作用,即使是不安全的连接也不起作用。当我尝试打开一个时,我仍然看到以下内容ejabberd.log
:
[信息] <0.4280.0>@ejabberd_listener:accept:302 (<0.4489.0>) 已接受连接 ::ffff:127.0.0.1:58410 -> ::ffff:127.0.1.1:5280
我什么也没得到error.log
。在浏览器的 JS 控制台中,我看到:
与 'ws://domain.local:5280/ws/' 的 WebSocket 连接失败:连接在收到握手响应之前关闭
再次,当我从中删除以下两行时,我的设置对于不安全的 Web 套接字连接运行良好ejabberd.yml
:
tls: true
certfile: "/opt/ejabberd/conf/server.pem"
证书的路径是正确的,server.pem
是我安装 ejabberd 时自带的默认路径。
我不太确定接下来该怎么做。欢迎提出任何建议。
答案1
尝试韋斯://domain.local:5280/ws/ 连接即可工作。您收到错误,因为tls: true在 ejabberd 配置文件中