我无法通过 Kaiwa 聊天客户端连接到我的 ejabberd 服务器。 这是我的 ejabberd 服务器配置:
hosts:
- "myserver.com"
listen:
-
port: 5280
module: ejabberd_http
certfile: "/Applications/ejabberd-15.10/conf/myserver.pem"
request_handlers:
"/websocket": ejabberd_http_ws
web_admin: true
http_bind: true
captcha: false
这是我的 Kaiwa 配置文件:
{
"isDev": true,
"http": {
"host": "localhost",
"port": 8000
},
"server": {
"domain": "myserver.com",
"wss": "wss://myserver.com:5280/websocket/"
}
}
当我尝试登录时,出现此错误:
WebSocket 连接到"wss://myserver.com:5280/websocket"失败:连接建立时出错:net::ERR_CONNECTION_CLOSED
我的 ejabberd 版本是 15.10,应该支持 websocket。
我将不胜感激任何帮助。
虽然您已经为ejabberd_http
指定了certfile
选项,但这不足以激活加密(如使用 wss://
而不是 ws://
的请求)。 您还需要指定tls
选项:
hosts:
- "myserver.com"
listen:
-
port: 5280
module: ejabberd_http
certfile: "/Applications/ejabberd-15.10/conf/myserver.pem"
request_handlers:
"/websocket": ejabberd_http_ws
web_admin: true
http_bind: true
captcha: false
tls: true
问题是chrome和Safari。我不确定为什么,但客户端应用程序与Mozilla Firefox完美配合,但不通过Safari或Chrome连接。这可能是一个安全设置。无论如何,切换到 Mozilla 解决了我的问题。