Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Веб-программирование > Общее

Общее Веб-разработка в целом, идеи, проекты...

Ответ
 
Опции темы
Старый 08.09.2016, 10:04   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Java Sockets -> WebSockets

Есть сервер, написан на Java сокетах .
Выдает Json, и принимает Json, но ясное дело нельзя так просто к нему подключиться с Web-приложений.

Вот как его так можно модифицировать, не сломав функционал и не переписывая тонну кода, что бы он работал как с обычными сокетами, так и веб-сокетами ?

Я в курсе что WebSocets - немного измененный HTTP/1.1, нашел небольшой гайд, но что-то он мне не особо помог.

https://developer.mozilla.org/en-US/...server_in_Java

Причем желательно вклиниться в поток до JsonReader / JsonWriter, а то он не пропускает не-JSON объекты.


Задачка вроде не сложная, но я вот не знаю как вклиниться в поток

Хотя есть идея удочерить самописный класс от FilterReader/Writer и писать/читать в нем заголовки и конвертировать прямо перегрузив методы write / read. Верно думаю?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 08.09.2016, 10:53   #2
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Java Sockets -> WebSockets

UPD, вклиниться не получиться. Нужно будет разделять логику. Эх.
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 08.09.2016, 16:03   #3
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 677
Написано 263 полезных сообщений
(для 448 пользователей)
Ответ: Java Sockets -> WebSockets

Если ты написал такие абстракции что нельзя подменить тип транспорта, то ты сам себе ССЗБ (если конечно это ты писал).
Есть tcp соединение, по которому идут данные (байты), ты эти байты как то интерпретируешь - ну, например, как текст-строку-json.
WebSocket - это то же самое tcp соединение, только во 1 вначале идут специальные http заголовки, и во 2 все сообщения (данные) упаковываются в специальную структуру. Другими словами - твой код не должен работать с сокетами - он должен работать с чем-то абстрактным, например, Stream. Если ты работаешь с потоком тебе не важно откуда пришли данные. Может это что-то вроде TCPStream, а может и WebSocketStream (который кстати работает поверх TCPStream).
__________________
(Offline)
 
Ответить с цитированием
Старый 10.09.2016, 11:12   #4
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Java Sockets -> WebSockets

Я работал напрямую с потоками сокетов, что было не особо правильно, как я понял, но у меня обработчик сообщений не зависит от способа приема данных, главное ему json принимать-отдавать. Пришлось в итоге переписать некоторые места. Теперь только WebSockets, не знаю на сколько это плохо для моего напарника, который клиент пишет=)), но теперь я спокойно могу отладить его работу, написав минималистичный WEB-клиент
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 02:46.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com