|
|
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. У меня следущая проблема: нужно написать код на java, отправляющий сообщение через XMPP на аккаунт, зарегистрированный на данном сайте. Я юзаю библиотеку Smack 3.1.0. Вот, собственно, код: XMPPConnection connection = new XMPPConnection(xmppServer); try{ connection.connect(); connection.login(xmppUser,xmppPwd); Chat chat = connection.getChatManager().createChat(address, new MessageListener() { public void processMessage(Chat chat, org.jivesoftware.smack.packet.Message message) { logger.info("Received message: " + message); } }); chat.sendMessage(text); } catch (XMPPException xmppExs) { logger.error(xmppExs.getLocalizedMessage()); } После строки connection.login(xmppUser,xmppPwd); возможны 2 варианта,в зависимости от имени указываемого сервера: 1) Если указан jabber.ru, то получаем Exception: "No response from server" 2) Если указан jabber.org, соответственно: "SASL authentication failed using mechanism DIGEST-MD5" Целый день уже гуглю, во всех примерах указан сервер jabber.org. Вопрос: какой сервер указывать и, если проблема с этим DIGEST-MD5, то как её решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2011, 15:37 |
|
||
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
А если вот это добавить перед логином? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2011, 09:30 |
|
||
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
Что касается первой проблемы, то сам как-то натолкнулся на такую ошибку. Надо гуглить, лечится патчем smack. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2011, 09:34 |
|
||
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
Туплю, не выходит каменный цветок ) В сети поднят сервер, необх. законнектиться к нему и отправить сообщение (нотификация). Пишу для пробы тоже: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Коннект проходит, на логине падает по NPE. (При этом с дажббера логин под этим же юзером конечно проходит) Полностью выглядит так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. По поводу как писали выше: Код: java 1. Не нахожу метода supportSASLMechanism у SASLAuthentication, зато есть например registerSASLMechanism, но и с ним что делать не очень ясно пока ) И вообще поможет ли фз ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2015, 18:09 |
|
||
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
Включил дебаг в smack. Запускаем с .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled), падаем на логине: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Странно. Будто клиент не поддерживает предлагаемые сервером механизмы аутентификации? Как тогда включить при аутентификации тот же DIGESTMD5 например? Запускаем с .setSecurityMode(ConnectionConfiguration.SecurityMode.ifpossible): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. Здесь падает уже на самом коннекте. Походу какая-то беда с сертификатами, работа с которыми в примере конечно вообще никак не прописана походу. Smack 4.1.4. Смотрел, в документации, или плохо искал, но толком не нашел ничего - приводится по сути этот же пример, что и тестирую. Что не так? Или может есть у кого рабочие примеры по теме? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 12:17 |
|
||
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
В первом случае (.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) пишут: As suggested by Stephen Base64encoder is indeed coming null because its not being set. To initialise that you have to include smack-java7 module in your project. Before connecting you have to initialize smack using, Код: java 1. Ну подключил к проекту smack-java7-4.1.4.jar. А толку. Как теперь найти в нем этот Java7SmackInitializer? ) Пишешь в IDE Java7SmackInitializer, но он нифига не подхватывает (как обычно предлагая импортировать нужный класс). Смотришь в документацию Но там из полезного видно только, что находится он в org.jivesoftware.smack.java7. Пишешь руками import (вообще бред конечно) org.jivesoftware.smack. а java7-то и нет нифига Зато есть org.jivesoftware.smack.SmackInitialization, но куда и чего с этим тоже не понятно. При этом в документации только голая спецификация без примеров и что с чем связано непонятно, или я просто не нахожу примеры? Как можно догадаться, что прежде надо инициализировать smack и как его вообще инициализировать? Почему было не прописать на автомате эту инициализацию, если она действительно нужна? Почему не выдавать нормальные сообщения об ошибках, а не NPE и сиди гадай ковыряйся что за хрень? Почему получается, что часть методов/классов фигурирующая в примерах уже не обнаруживается в текущей версии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 13:47 |
|
||
|
java,xmppconnection
|
|||
|---|---|---|---|
|
#18+
... Оказалось, импортировал часть библиотек по невнимательности не к тому проекту, после исправления прописал механизм аутентификации и вроде пошло, правда пока только с .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2015, 17:33 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39089857&tid=2124751]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 432ms |

| 0 / 0 |
