Webbit websocket ws: // соединение работает, но рукопожатие wss: // молча завершается без ошибок? - PullRequest
1 голос
/ 22 марта 2012

Обновил Webbit до 0.4.6, чтобы использовать новую поддержку SSL, но сразу понял, что все рукопожатия wss: // молча терпят неудачу, и у меня нет никаких ошибок, чтобы показать это.Chrome сообщает об «успехе» только для ответа без HTTP-кода или других заголовков.Я проверяю логи сервера, и он даже не регистрирует «открытое» событие.

Подвох в том, что любое соединение ws: // прекрасно работает.Так в чем могут быть возможные проблемы и как я могу получить ошибку из этого?Может ли быть что-то не так с хранилищем ключей Java и рукопожатием SSL?

Редактировать

Мне удалось найти команду openSSL для тестового рукопожатия.Вот вывод:

SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:error in SSLv2/v3 read server hello A

Редактировать 2

Я понял, что могу отладить это дальше

CONNECTED(0000016C)
SSL_connect:before/connect initialization
write to 0x1f57750 [0x1f6a730] (210 bytes => 210 (0xD2))
0000 - 16 03 01 00 cd 01 00 00-c9 03 01 4f 6b 8d 68 63   ...........Ok.hc
0010 - 99 06 08 30 93 2a 42 88-f8 f1 c4 c5 dc 89 71 0b   ...0.*B.......q.
0020 - b6 04 42 4e 11 79 b4 76-6c f7 66 00 00 5c c0 14   ..BN.y.vl.f..\..
0030 - c0 0a 00 39 00 38 00 88-00 87 c0 0f c0 05 00 35   ...9.8.........5
0040 - 00 84 c0 12 c0 08 00 16-00 13 c0 0d c0 03 00 0a   ................
0050 - c0 13 c0 09 00 33 00 32-00 9a 00 99 00 45 00 44   .....3.2.....E.D
0060 - c0 0e c0 04 00 2f 00 96-00 41 00 07 c0 11 c0 07   ...../...A......
0070 - c0 0c c0 02 00 05 00 04-00 15 00 12 00 09 00 14   ................
0080 - 00 11 00 08 00 06 00 03-00 ff 01 00 00 44 00 0b   .............D..
0090 - 00 04 03 00 01 02 00 0a-00 34 00 32 00 01 00 02   .........4.2....
00a0 - 00 03 00 04 00 05 00 06-00 07 00 08 00 09 00 0a   ................
00b0 - 00 0b 00 0c 00 0d 00 0e-00 0f 00 10 00 11 00 12   ................
00c0 - 00 13 00 14 00 15 00 16-00 17 00 18 00 19 00 23   ...............#
00d2 - <SPACES/NULS>
SSL_connect:SSLv2/v3 write client hello A
read from 0x1f57750 [0x1f6fc90] (7 bytes => 0 (0x0))
12488:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 210 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---

Редактировать 3

Хорошо, я прибилпроблема с инициализацией Webbit, но она не выдает никаких ошибок, поэтому я мог бы использовать некоторые данные для правильного функционирования getResourceAsStream.Вот как инициализируется сервер:

def startWebSocketServer(webSocketHandler:PartialFunction[WebSocketEvent, Unit]) {
    val webServer = WebServers.createWebServer(port)
    try {
      webServer.setupSsl(getClass.getResourceAsStream("/keystore"), "webbit")
      webServer.add("/", new WebSocketEventAdapter(webSocketHandler))
      webServer.start
    } catch {
      case e => e.printStackTrace()
    }
  }

К сожалению setupSsl не будет выводить никакой информации, и я попробовал и то, что я думал, что это путь, и вставка поддельного пути.В любом случае я не могу получить ошибку.Как же я мог бы правильно найти путь?Спасибо!

1 Ответ

0 голосов
/ 23 марта 2012

Ответ OMFG

В истерическом повороте судьбы я обнаружил проблему.Эта конкретная проблема заняла 48 часов моего времени, но причина была даже не в коде, а в странном недопонимании.

Итак, как оказалось, другой разработчик скопировал наш код веб-сокета в новый файл, над которым он работална развитие.Все это время мы пытались отлаживать код в файле, который даже не выполнялся во время выполнения.Итак, после дальнейшего изучения мы прокрутили до конца очень длинный и другой файл, нашли код инициализации webbit и отлично его извинили.

Мораль истории: не передавайте неполный файл в ветку masterи укажите всем там для отладки;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...