Я следую инструкциям https://docs.ejabberd.im/admin/guide/mqtt/#enabling -mqtt-service-in-ejabberd .
Вот мой конфиг, такой же, как учебник. И я также открываю порт 1883, 8883 в группе безопасности AWS.
hosts:
- "localhost"
listen:
-
port: 1883
module: mod_mqtt
backlog: 1000
-
port: 5280
module: ejabberd_http
request_handlers:
...
"/mqtt": mod_mqtt
-
port: 8883
module: mod_mqtt
backlog: 1000
tls: true
# adapt the path to your own certfile
certfiles:
- "/var/snap/ejabberd/tls/mqtt.pem"
modules:
...
mod_mqtt: {}
Однако ejabberd не запускается, выдавая следующие ошибки:
2020-03-29 21:30:59.416 [error] <0.299.0> Supervisor ejabberd_listener had child
{1883,{0,0,0,0},tcp} started with ejabberd_listener:start({1883,{0,0,0,0},tcp},
mod_mqtt, [{backlog,1000}]) at undefined exit with reason {'EXIT',{undef,
[{mod_mqtt,socket_type,[],[]},{ejabberd_listener,start,3,[{file,
"src/ejabberd_listener.erl"},{line,86}]},{supervisor,do_start_child,2,[{file,
"supervisor.erl"},{line,358}]},{supervisor,start_children,3,[{file,
"supervisor.erl"},{line,341}]},{supervisor,init_children,2,[{file,
"supervisor.erl"},{line,307}]},{gen_server,init_it,6,[{file,"gen_server.erl"},
{line,328}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]}}
in context start_error
и
2020-03-29 21:29:31.371 [error] <0.38.0>@ejabberd_config:validate_opts:1022
unknown option 'certfiles' will be likely ignored