Java Sockets -> WebSockets
Есть сервер, написан на Java сокетах .
Выдает Json, и принимает Json, но ясное дело нельзя так просто к нему подключиться с Web-приложений. Вот как его так можно модифицировать, не сломав функционал и не переписывая тонну кода, что бы он работал как с обычными сокетами, так и веб-сокетами ? Я в курсе что WebSocets - немного измененный HTTP/1.1, нашел небольшой гайд, но что-то он мне не особо помог. https://developer.mozilla.org/en-US/...server_in_Java Причем желательно вклиниться в поток до JsonReader / JsonWriter, а то он не пропускает не-JSON объекты. Задачка вроде не сложная, но я вот не знаю как вклиниться в поток:dontknow: Хотя есть идея удочерить самописный класс от FilterReader/Writer и писать/читать в нем заголовки и конвертировать прямо перегрузив методы write / read. Верно думаю? |
Ответ: Java Sockets -> WebSockets
UPD, вклиниться не получиться. Нужно будет разделять логику. Эх.
|
Ответ: Java Sockets -> WebSockets
Если ты написал такие абстракции что нельзя подменить тип транспорта, то ты сам себе ССЗБ (если конечно это ты писал).
Есть tcp соединение, по которому идут данные (байты), ты эти байты как то интерпретируешь - ну, например, как текст-строку-json. WebSocket - это то же самое tcp соединение, только во 1 вначале идут специальные http заголовки, и во 2 все сообщения (данные) упаковываются в специальную структуру. Другими словами - твой код не должен работать с сокетами - он должен работать с чем-то абстрактным, например, Stream. Если ты работаешь с потоком тебе не важно откуда пришли данные. Может это что-то вроде TCPStream, а может и WebSocketStream (который кстати работает поверх TCPStream). |
Ответ: Java Sockets -> WebSockets
Я работал напрямую с потоками сокетов, что было не особо правильно, как я понял, но у меня обработчик сообщений не зависит от способа приема данных, главное ему json принимать-отдавать. Пришлось в итоге переписать некоторые места. Теперь только WebSockets, не знаю на сколько это плохо для моего напарника, который клиент пишет=)), но теперь я спокойно могу отладить его работу, написав минималистичный WEB-клиент
|
Часовой пояс GMT +4, время: 08:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot