Я использую ejabberd 17.12. Работает нормально.
С этой конфигурацией мне удается открывать небезопасные подключения к веб-сокетам из моего браузера, используя как консоль JS, так и клиент XMPP:
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"
Теперь соединения через веб-сокеты больше не работают, даже незащищенные. Когда я пытаюсь открыть один, я все еще вижу это в 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-консоли браузера я вижу:
Соединение WebSocket с 'ws: //domain.local: 5280 / ws /' не удалось: соединение закрыто до получения ответа рукопожатия
Опять же, моя установка отлично работает для незащищенных подключений к веб-сокетам, когда я удаляю следующие две строки из ejabberd.yml
:
tls: true
certfile: "/opt/ejabberd/conf/server.pem"
Путь к сертификату правильный, и server.pem
по умолчанию, когда я установил ejabberd.
Я не очень уверен, как двигаться дальше. Любое предложение приветствуется.
Попробуйте с wss: //domain.local: 5280 / ws / соединение будет работать. Вы получили ошибку, потому что tls: правда в файле конфигурации ejabberd