New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Чтение событий в aggregate и использование их в своём модуле. (как прочитать) #62
Comments
Само сообщение - это тот самый |
@morfeusys в интернете мало информации, прошу объяснить подробнее. ----это тот самый ----сам код выполняется только при наступлении события естественно. ----"tts.say" - это прямое сообщение, а не широковещательное, так что ваш модуль может его вообще никогда не получить. ----"asr.result" слушать вообще не рекомендуется для выполнения чего-либо, |
@UUSR вы можете безусловно слушать событие asr.result. Но только не генерировать какой-то ответ пользователю на это событие. Так как оно не имеет к вашему модулю непосредственного отношения. |
@morfeusys я и ничего пока не генерирую для пользователя ,я не могу понять как запустить код в модуле на выполнение при получении события asr.result ? |
@UUSR у события asr.result msg.body() будет содержать строку распознанного текста |
@morfeusys Я абсолютно ни чего не понимаю в JAVA ,прямо руки опускаются. Ругается на неправильно составленный код: апр 01, 2016 11:21:05 PM io.vertx.core.impl.ContextImpl строка 38 |
@UUSR не опускайте )) уже совсем скоро будет версия 0.0.2, где кроме всего прочего будет поддержка сразу нескольких языков программирования |
@morfeusys разобрался с |
@UUSR В обновлении агрегата вы сможете подслушать любой ответ от любого модуля, просто слушая стандартное событие "response". |
@morfeusys это очень хорошо но я хочу JAVA понять ,уж очень интересный язык ,всё на своих местах надо просто привыкнуть к нему. почему то в консоль выводит два раза подряд: Странно почему два раза выводит ? |
С tts.say у меня проблемы пишет в базу прошлое сообщение или Агрегат отвечает сначала "Вас не слышно" а потом Дуся отвечает ещё раз. Получается что вопрос в таблице не соответствует ответу. Жду обновления Aggregate ,возможно с сообщением "response" будет проще записать ответ. Вот не могу понять эти ошибки ,возникают при обработке исключений в коде:
Не удалось обработать сообщение |
@UUSR В обновлении 0.0.2 вы можете слушать событие "response", чтобы получать все ответы от всех модулей |
@morfeusys подскажите событие "response" имеет сообщение "формат ответа". Это уже не лог:
JSONObject не может быть приведен к java.lang |
Ну так естественно это msg.body(). Но он может быть или строкой, или json объектом. |
@morfeusys как объект получаю строку вида: |
@UUSR Это не строка, это JsonObject - его методами и нужно вытаскивать speeches |
@morfeusys вот так? |
Просто так кастить не надо - нужно проверить на instanceof строка это или объект |
@morfeusys на пример у нас есть:
|
@UUSR вам все же нужно сперва разобраться с Java. Или уж писать модуль на другом языке - поддерживаются Javascript, Typescript, Groovy и Ruby |
@morfeusys Java пытаюсь изучать по возможности. |
Событие response ,не смог найти полного описания в WIKI |
На пример я в методе start регистрирую слушателя на события asr.result и tts.say:
vertx.eventBus().consumer("asr.result", msg -> {
msg.reply(getQuestion(Request.fromMessage(msg)));
});
vertx.eventBus().consumer("tts.say", msg -> {
msg.reply(getAnswer(Request.fromMessage(msg)));
});
f.complete();
После этого модуль должен слушать события и при появлении одного из событий начинает выполняться код модуля расположенный после метода start.
Вот не понятно когда начинает выполняться код в модуле?
Обязательно ли использовать файл грамматики для работы с этими двумя событиями в модуле?
И не понятно как получить из посланного события само сообщение в виде текста ?
The text was updated successfully, but these errors were encountered: