Я использую gen_mod и gen_fsm. gen_mod обрабатывает весь запрос iq, в одном случае я запускаю gen_fsm и поддерживаю этот модуль. если первый пользователь дает запрос iq и создает модуль gen_fsm pid и работает хорошо. но между тем я отправляю другой iq другим пользователем, я получил ошибку от модуля gen_fsm {error,{already_started,<0.478.0>}
. но некоторые из них знают, что причиной является то, что первый пользователь iq генерировал pid для gen_fsm, но второй пользователь iq не смог создать новый pid для этого пользователя, потому что уже этот модуль запущен. Я думаю, что модуль gen_fsm добавит под супервизором, поэтому каждый пользователь может создать pid для модуля gen_fsm и может поддерживать чат. , пожалуйста, дайте мне знать, так ли это правильно или есть какой-то другой способ?Как создать pid для gen_fsm каждым пользователем iq запрос в ejabberd
0
A
ответ
2
Кажется, что вы начинаете каждый gen_fsm
процесс с зарегистрированным именем. Это означает, что запуск другого приведет к столкновению и сбою с already_started
, так как это имя уже выполнено.
Если вы не используете зарегистрированное имя, вы можете запустить процесс без него. Предположительно ваш код имеет следующую строку:
gen_fsm:start_link({local, ?SERVER}, my_module, [], [])
Просто удалите первый аргумент:
gen_fsm:start_link(my_module, [], [])
Смежные вопросы
- 1. ejabberd - пользовательские обработчики iq
- 2. ejabberd add iq handler
- 3. ejabberd Крюк против обработчика IQ
- 4. Ejabberd: Отключить запрос Принимать/Отменить в чате с другим пользователем
- 5. Добавить динамический супервизор в ejabberd
- 6. Запрос последнего сообщения в каждом разговоре с каждым другим пользователем
- 7. Как создать разные данные с каждым другим пользователем?
- 8. ejabberd MUC Архив Управление ответ на запрос
- 9. Как визуализировать Erlang gen_fsm
- 10. Как создать журнал ошибок для сообщений ejabberd
- 11. Списки конфиденциальности в ejabberd
- 12. Создать многопользовательский чат в Ejabberd
- 13. грант создать представление в Sybase IQ
- 14. Отправка сообщений в ejabberd не работает для меня
- 15. ejabberd запрос mod_http_api остальное
- 16. Как скрипт пользовательских Openfire запрос IQ в цзун
- 17. Ejabberd Voip с
- 18. Использование настраиваемой строфы <iq> в tsung (для тестирования ejabberd)?
- 19. Как создать не анонимные комнаты в Ejabberd
- 20. RETS IQ для магниторезонансной RETS
- 21. Войти как пользователь в Ejabberd
- 22. кол-во комментариев каждым пользователем - mysql
- 23. gen_fsm erlang timeout
- 24. Socket.io работает с каждым пользователем отдельно
- 25. Ejabberd- set vard для другого пользователя
- 26. Как получить ответ IQ
- 27. Cakephp display no. сообщений, сделанных каждым пользователем
- 28. ejabberd MAM не работает для MUC
- 29. ejabberd ошибка mod_multicast
- 30. Получение состояния gen_server/gen_fsm для отладки