|
|
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Подскажите правильность такого решения. У меня есть точка подключения вебсокета на Java (сервер). В нем реализованы методы onOpen, onMessage, onClose и onError. Речь пойдет о методе onMessage. Мне не хочется набивать этот метод свичем который будет огромным для всех сообщений которые возможны. Я сделал такую вот штуку (использовал внутренний не статический класс для обработки сообщений) Код: 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. верно ли так делать? Может есть более элегантный способ обработки сообщений? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 11:39 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 11:53 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:04 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Прямо в документации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:05 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
я бы сделал так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Как конкретно создавать экземпляры классов внутри "фабрики" - дело такое. Самый простой и топорный подход конечно через switch. Eсли объекты простые, то табличный метод Код: java 1. 2. 3. 4. 5. 6. 7. 8. более элегантные (на мой вкус) варианты это создание через механизм dependency injection. особенно если объекты сложные, со своими зависимостями и т.д. В зависимости от кол-ва классов и сложности задачи можно промежуточные варианты использовать. Нет смысла городить огород ради например 3х примитивных классов с конструктором без параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:07 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:08 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovПрямо в документации? посмотрел. Суть не поменяется. Я сделаю вот так: Код: java 1. 2. 3. 4. 5. 6. Но чем это будет отличаться от этого? Код: java 1. 2. 3. 4. В первом случае свитч все равно будет, как и во втором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:08 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop...Мне не хочется набивать этот метод свичем который будет огромным для всех сообщений которые возможны.... AFAIK В "нормальных языках программирование" ( TM ) есть ссылки на методы, т.ч. в них можно делать массив/HashMap и через него вызывать нужные методы. В "старой ява" такого нет, т.ч. для каждого обработчика нужно создавать свой класс, что немного "тяжеловестно". В общем, банальный "pattern Command". В "новой Java" появились closure, в данном случае они вполне могут сделать код чуть проще. Но в closure мне не очень нравится реализация обработки эксепшенов. Т.ч. я против прогресса и за старый код, чуть больше строк, зато понятнее, деревеннее и надежнее ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:08 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, Это тут вообще не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:11 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpasha, Код: java 1. 2. 3. а если 300 надо?.... не оптимально, есть вариант проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:13 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяа если 300 надо?.... если у нас 300 обработчиков, каждый из которых делает что-то свое то пишем все 300, да вадяесть вариант проще расскажи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:14 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopвадя, Это тут вообще не при чем.это ты пока начальной стадии. Leonid KudryavtsevВ "нормальных языках программирование" ( TM ) есть ссылки на методы, т.ч. в них можно делать массив/HashMap и через него вызывать нужные методы. В "старой ява" такого нет, т.ч. для каждого обработчика нужно создавать свой класс, что немного "тяжеловестно". В общем, банальный "pattern Command". В "новой Java" появились closure, в данном случае они вполне могут сделать код чуть проще. Но в closure мне не очень нравится реализация обработки эксепшенов. Т.ч. я против прогресса и за старый код, чуть больше строк, зато понятнее, деревеннее и надежнее )))в java давно есть рефлексия, и с ней всё очень просто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:15 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, На счет рефлексии согласен. Были варианты её использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:17 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaесли у нас 300 обработчиков, каждый из которых делает что-то свое то пишем все 300, даты не понял проблемы вопрос не в количестве обработчиков, а как их вызвать у меня на каждую страницу свой java файл обработчиков. очень наглядно, удобно и мне не надо их вызывать ни через case , ни через if всё через рефлексию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:19 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpasha, я так понимаю, Вы привели одну из возможных реализаций pattern Command. Минусы примера, как я вижу: 1 - Factory. В принципе, в 99% задач это даром не надо, если события ходят часто, то проще уйти от ООП и инкапсуляции и, например, передавать обрабатываемые данные через параметры. Лишняя операция создания объекта лично меня обычно напрягает 2 - много букв, т.к. нужно для каждой операции создавать свой класс. Но тут вполне могут помочь лямбды и клосуры в новой Java. По смыслу будет тоже самое, но буковок в итоге может оказаться меньше и код получится более компактный. Но компактность IMHO это плюс для случаев, когда операций мало. Если операций много, то лучше через классы, т.к. компактности в любом случае не получится, но с лямбдами можно сотворить помойку, а с классами хоть и будет много букв, зато строгая и логичная система. вадя....в java давно есть рефлексия, и с ней всё очень просто IMHO & AFAIK рефлексия: a) костыль b) как всякий костыль, прощай производительность Смысла использовать рефлексию для данной задачи, лично я полностью не вижу. Ну или только с целью создания гибко настраиваемой системы, но думаю и в этом случае без нее можно обойтись IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:28 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, что скажете на счет моего варианта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:33 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevIMHO & AFAIK рефлексия: a) костыль b) как всякий костыль, прощай производительность Смысла использовать рефлексию для данной задачи, лично я полностью не вижу. Ну или только с целью создания гибко настраиваемой системы, но думаю и в этом случае без нее можно обойтись а) кто такое сказал? b) живете старыми данными - рефлексия уже очень давно не тормоз. если у тебя 300 методов и чтоб выбрать нужный - без рефлексии только case и if. и как будет выглядеть портянка из 300 case или 300 if вот где с производительность прощай... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:35 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, нет. у меня уже есть то что должно быть. Писал его я. Просто переписываю под модульность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:40 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopLeonid Kudryavtsev, что скажете на счет моего варианта? вариант, как вариант. Вы же сами сказали: TsyklopМне не хочется набивать этот метод свичем который будет огромным для всех сообщений которые возможны. или свитч, или если не хочется свитча, то HashMap. Простейший паттерн Command. Chpasha пример реализации привел. Если не нравится фабрика, можно ее просто выкинуть. Если не нравится необходимость создания классов, можно использовать closure в новой java. Если уж так хочется, то можно и рефлексию прицепить. О чем тут дискутировать, я вообще не знаю ))). Конечно, полно обсуждений на 100500 страницах по "правильной реализации" даже таких паттернов как singleton и в принцеппе паттер command ничем не хуже )))... но это беспредметный "паттерно срачь" получится ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:42 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя.... если у тебя 300 методов и чтоб выбрать нужный - без рефлексии только case и if. и как будет выглядеть портянка из 300 case или 300 if вот где с производительность прощай... HashMap чем не угодил ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:42 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, можно подробнее про вариант с HashMap-ом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:55 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevHashMap чем не угодил ?у меня в HashMap и содержится список методов, этот список заполняется при запуске серверного приложения. но как при помощи HashMap вызвать метод? и подставит ему данные? с рефлексией просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:56 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopнет. у меня уже есть то что должно быть. Писал его я. Просто переписываю под модульность.у меня как раз и получается модульность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:58 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя, можно подробнее про вариант с HashMap-ом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 12:59 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopвадя, можно подробнее про вариант с HashMap-ом?для каждой страницы есть свои методы обработки данных. их число не ограничивается. для каждой страницы эти методы находятся в отдельном файле/классе эти файлы находятся в отдельной папке при запуске приложения - эти файлы обрабатываются и в HashMap заносится имя метода и весь путь до него при получении сообщения из HashMap по имени метода/"команды" извлекается полный путь до метода и через рефлексию вызывается этот метод. загрузка в HashMap написана один раз и давно. класс с обработкой ws тоже давний. если мне надо добавить обработку я просто в нужный файл/класс (относящийся к нужной странице) добавляю метод и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:11 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevМинусы примера это был пример решения задачи в общем виде, не применительно к сокетам, сервлетам, кол-ву запросов или чему либо еще. на счет как это называется, без разницы :) Leonid Kudryavtsevпередавать обрабатываемые данные через параметры. Лишняя операция создания объекта лично меня обычно напрягает они и так будут через параметры передаваться. вопрос в том куда и как. на счет создания объектов - это все детали реализации. у нас вполне могут быть thread safe синглтоны (не в смысле статический класс, а в смысле один экземпляр) Leonid Kudryavtsevмного букв, т.к. нужно для каждой операции создавать свой класс. Но тут вполне могут помочь лямбды и клосуры в новой Java. По смыслу будет тоже самое, но буковок в итоге может оказаться меньше и код получится более компактный. Но компактность IMHO это плюс для случаев, когда операций мало. Если операций много, то лучше через классы, т.к. компактности в любом случае не получится, но с лямбдами можно сотворить помойку, а с классами хоть и будет много букв, зато строгая и логичная системаименно так - это тоже детали реализации - о конечно задаче ведомо только ТС. если у нас куча функций со своими зависимостями (репозитарии, сервисы) - то без классов никак, если у нас 4-5 команд, можно как угодно решать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:14 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяты не понял проблемы вопрос не в количестве обработчиков, а как их вызвать ок, какая разница 300 методов или 300 условных строчек вида type1 --> class1 это точно такой же табличный метод записи, только у тебя вместо Map - класс, вместо ключей - названия методов, а вместо значений - их тела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:18 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaок, какая разница 300 методов или 300 условных строчек вида type1 --> class1 это точно такой же табличный метод записи, только у тебя вместо Map - класс, вместо ключей - названия методов, а вместо значений - их тела у тебя все в одном файле у меня в разных файлах я просто добавляю/удаляю/редактирую нужный метод, мне его просто найти -есть страница с которой работаю - есть для неё файл/класс. я работаю с одно страницей не мешаю никому работать с другой.... для выбора нужного ты перебираешь все до нужного, я вызываю нужный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:24 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpasha, у меня в файле/классе 20-30 методов у тебя в одном все 300... мне найти просто, тебе ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:27 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяу тебя все в одном файле у меня в разных файлах У меня конфигурация в одном месте, у тебя размазана тонким слоем повсюду. кроме того никто не мешает пойти дальше и разработать механизм само-регистрации обработчиков. все зависит от конкретной задачи - я не знаю, что делает ТС, я вижу только входящий метод и информацию о том, что там стопицот свитчей. вадямне его просто найти -есть страница с которой работаю - есть для неё файл/класс у меня нет никаких страниц, я описал способ централизованной обработки входящих сообщений вадяя работаю с одно страницей не мешаю никому работать с другой. что-что? вадядля выбора нужного ты перебираешь все до нужного, я вызываю нужный вадя, соберись. где у меня "перебираешь"? вадяу меня в файле/классе 20-30 методов что-то мало, у настоящих мастеров все вообще в одном классе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:36 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaчто-то мало, у настоящих мастеров все вообще в одном классе300 методов в одном классе? ну уж нет.... chpashaвадяя работаю с одно страницей не мешаю никому работать с другой. что-что?если я правлю одну страницу то я работаю с двумя файлами jsp странице и файлом с методами для этой страницы , мне никто не мешает и я никому не мешаю . chpashaвадядля выбора нужного ты перебираешь все до нужного, я вызываю нужный вадя, соберись. где у меня "перебираешь"?покажи как ты по имени метода вызываешь этот метод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:50 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaвадямне его просто найти -есть страница с которой работаю - есть для неё файл/класс у меня нет никаких страниц, я описал способ централизованной обработки входящих сообщенийу меня тоже централизованный метод, вот только сами методы разнесены для удобства по разным файлам chpashaУ меня конфигурация в одном месте, у тебя размазана тонким слоем повсюду. кроме того никто не мешает пойти дальше и разработать механизм само-регистрации обработчиков. все зависит от конкретной задачи - я не знаю, что делает ТС, я вижу только входящий метод и информацию о том, что там стопицот свитчей.у меня не размазана - у меня есть четкое соответствие страницы браузера с методами , которые обрабатывают данные на этой странице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 13:53 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадя300 методов в одном классе? ну уж нет это был сарказм. а 30 в самый раз да? вадяесли я правлю одну страницу то я работаю с двумя файлами jsp странице и файлом откуда у нас уже взялись какие-то jsp, где в топике про jsp? может у ТС messenger на сокетах? задача сформулирована довольно общим образом, особенно в разрезе применения внутреннего класса. Но отвечая на твой вопрос, у нас 16 апреля 2018, курс биткоина 8.087,46€ , merge уже изобрели. вадяпокажи как ты по имени метода вызываешь этот метод у нас нет имени метода, есть тип сообщения. впрочем это не меняет сути. я специально для тебя продублирую то, что уже написал один раз выше, так и быть Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:01 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpasha, допер Ваш вариант. Но есть вопрос. как мне в каждом обработчике получать доступ к списку подключенных к сокету юзверей? все они хранятся у меня в потоко безопасном листе CopyOnWriteArrayList<WsUser>. Делать этот лист публичным? или package private? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:19 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaэто был сарказм. а 30 в самый раз да?это у меня 30+ для одной странице в одном файле. в проекте 10++ страниц - так что 300 это реальная цифра без всякого сарказма. chpashaоткуда у нас уже взялись какие-то jsp, где в топике про jsp? может у ТС messenger на сокетах?я к примеру привел на чем формируется страница. обновление данных по ws. страниц на портале может быть много... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:35 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopдопер Ваш вариант можно на "ты", мы же на каком нибудь 4pda.ru ;) Tsyklopкак мне в каждом обработчике получать доступ к списку подключенных к сокету юзверей? Делать этот лист публичным? или package private?имхо правильней выделить список пользователей в отдельный класс (да-да, еще один класс ;) ) . как до него достучаться в разных местах - возможны варианты. Можно его сделать статическим (если очень хочется) потокобезопасным. Можно его инжектировать там где надо с помощью di. Все зависит от конкретной ситуации и сферы применения. P. S. тут я хочу немного отскочить в сторону: что ты конкретно реализуешь? что есть в наличии? di framework типа spring, или "все своё", как вадя любит? почему например не взять готовый framework для сокетов? тот же спринг. Я не специалист по сокетам, может еще десяток отличных framework-во существует. Просто когда я смотрю, на то, что перетерли тут на двух страницах, а потом на примеры из спринга Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. то у меня возникает закономерный вопрос набуя козе баян? Имхо для того, чтобы самому городить вот это вот все - нужно иметь очень веский повод ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:38 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяя к примеру привел на чем формируется страница. обновление данных по ws. страниц на портале может быть много. так и какой смысл в сравнении яблок со сливами? У тебя страницы какие-то, у ТС - не понятно что, у меня вообще абстрактный пример решения задачи в общем виде. Причем тут тогда кол-во методов и совместное редактирование одного файла в отрыве от задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:42 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpasha...Просто когда я смотрю, на то, что перетерли тут на двух страницах, а потом на примеры из спринга... А можно просьбу от чайника и ламера: когда ссылаетесь на спринг, давайте пожалуйста RTFM на книжку/доку. AFAIK спринг он большой и если кто с ним не работал (например я), то примеры и анотации выдернутые из контекста - нифига не понятны ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:43 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpasha, это всё красиво пока в теории. и в малом количестве ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:44 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяchpasha, это всё красиво пока в теории. и в малом количестве Да нет у Chpasha никакой теории. Банальный паттерн command + паттерн factory. Что тут обсуждать, лично мне вообще не понятно. Если у ТС есть вопросы по реализации, то просьба ТС их более явно сформулировать. Я бы попытался привести пример кода, но у меня новый компьютер и инет за проксей. 180 Mb eclipse уже 3 часа скачаться не могут ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:47 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaтак и какой смысл в сравнении яблок со сливами? У тебя страницы какие-то, у ТС - не понятно что, у меня вообще абстрактный пример решения задачи в общем виде. Причем тут тогда кол-во методов и совместное редактирование одного файла в отрыве от задачи?ты читай всё - 21341559 у него 10 страниц... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:47 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevкогда ссылаетесь на спринг, давайте пожалуйста RTFM на книжку/доку дружище, spring + socket и первая же ссылка на пример, вторая на доку. Leonid KudryavtsevAFAIK спринг он большой и если кто с ним не работал (например я), то примеры и анотации выдернутые из контекста - нифига не понятны (((ну извините. я (повторюсь), с сокетами в спринг тоже не работал, но мне взглянув на пример вполне понятно, что там происходит в общих чертах Сообщение, отправленное по адресу "/hello" попадает в наш метод greeting - т.е. у нас уже из коробки роутинг (по сути предмет этого топика) и конвертация json -> dto. Далее мы возвращаем другой dto который в свою очередь снова превращается в json и улетает всем подписчикам вадяэто всё красиво пока в теории. и в малом количестведа-да, spring для hello world, твой велосипед для дела - строго в таком порядке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:58 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяchpashaтак и какой смысл в сравнении яблок со сливами? У тебя страницы какие-то, у ТС - не понятно что, у меня вообще абстрактный пример решения задачи в общем виде. Причем тут тогда кол-во методов и совместное редактирование одного файла в отрыве от задачи?ты читай всё - 21341559 у него 10 страниц... при чем тут страницы к вебсокету который сллужит сервером? подключатся я буду к этому серверу на каждой странице. На каждой будут свои сообщения. Но сервер должен обрабатывать их ВСЕ, ВСЕ, со всех страниц. Сервер он один для всех страниц. Зачем приплетать другую тему сюда. не пойму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:00 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяты читай всё - 21341559 у него 10 страниц... мне больше заняться нечем. я ответил общим образом на общий вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:00 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaну извините. я (повторюсь), с сокетами в спринг тоже не работал, но мне взглянув на пример вполне понятно, что там происходит в общих чертахценное замечание, дальше можешь не продолжать chpashaСообщение, отправленное по адресу "/hello" попадает в наш метод greetingещё более ценное высказывание... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:00 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaмне больше заняться нечем. я ответил общим образом на общий вопрособщим образом.. куда уж далеее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:01 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaLeonid Kudryavtsevкогда ссылаетесь на спринг, давайте пожалуйста RTFM на книжку/доку дружище, spring + socket и первая же ссылка на пример, вторая на доку. Leonid KudryavtsevAFAIK спринг он большой и если кто с ним не работал (например я), то примеры и анотации выдернутые из контекста - нифига не понятны (((ну извините. я (повторюсь), с сокетами в спринг тоже не работал, но мне взглянув на пример вполне понятно, что там происходит в общих чертах Сообщение, отправленное по адресу "/hello" попадает в наш метод greeting - т.е. у нас уже из коробки роутинг (по сути предмет этого топика) и конвертация json -> dto. Далее мы возвращаем другой dto который в свою очередь снова превращается в json и улетает всем подписчикам вадяэто всё красиво пока в теории. и в малом количестведа-да, spring для hello world, твой велосипед для дела - строго в таком порядке Нет. фреймворки я не использую (пока что). Использую либу для сокетов. Она весьма проста в использовании и не требует ничего сверхъестественного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:02 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaдружище, spring + socket и первая же ссылка на пример, вторая на доку. ну так я и говорю, хоть url кидайте. А то по анотациям из кода фиг поймешь, из какого места этот пример. По крайне мере, лично мне было не понятно ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:06 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяценное замечание, дальше можешь не продолжать вадяещё более ценное высказывание.. тут ты меня уел вадяобщим образом.. куда уж далеее я должен был на общий вопрос без контекста написать 20 страниц говнокода? извините, учту на будущее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:06 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopНет. фреймворки я не использую зря, тебе сейчас кажется, что ты экономишь кучу времени, и все такое свое родное, понятное. Но однажды эта экономия вернется и ударит по башке. Ну если конечно ты не уволишься, тогда прилетит уже другому. Например когда уволится вадя, фирму просто закроют Tsyklopне требует ничего сверхъестественного. проекты имеют свойство разрастаться и усложняться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:10 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
chpashaTsyklopНет. фреймворки я не использую зря, тебе сейчас кажется, что ты экономишь кучу времени, и все такое свое родное, понятное. Но однажды эта экономия вернется и ударит по башке. Ну если конечно ты не уволишься, тогда прилетит уже другому. Например когда уволится вадя, фирму просто закроют Tsyklopне требует ничего сверхъестественного. проекты имеют свойство разрастаться и усложняться я как бы не говорил что фреймворки это плохо и вроде как отметил что пока что не использую. Проект изначально был написан без них и переписывать все по фреймворк нет времени и средств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:13 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopя как бы не говорил что фреймворки это плохо а я не говорил, что ты говорил ;) - просто поделился соображениями. через это все проходят. ну почти, некоторые навсегда застряют на стадии велосипедов навсегда и я сейчас не только Вадю имею в виду, у самого таких полно любителей "своего". TsyklopПроект изначально был написан без них и переписывать все по фреймворк нет времени и средствэто весомый аргумент (без сарказма) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:19 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopИспользую либу для сокетов. Она весьма проста в использовании и не требует ничего сверхъестественного.можно взять либу у tomcat, всё просто и наглядно, куча доков, поддержка. можно http://tootallnate.github.io/Java-WebSocket/ - работает на отдельном порту, что в некоторых случаях есть преимущество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:19 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklopИспользую либу для сокетов. Она весьма проста в использовании и не требует ничего сверхъестественного.можно взять либу у tomcat, всё просто и наглядно, куча доков, поддержка. можно http://tootallnate.github.io/Java-WebSocket/ - работает на отдельном порту, что в некоторых случаях есть преимущество. Чет примеров я не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:21 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
TsyklopЧет примеров я не нашел.там есть кнопка View On GitHub работает и в анроиде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:28 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяTsyklopЧет примеров я не нашел.там есть кнопка View On GitHub работает и в анроиде честно.. не очень либа. в той что использую я все уже готово и не надо так заморачиваться. При том что я веб сокет юзаю на java ee приложении, а те примеры сделаны на простом приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:42 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopвадяпропущено... там есть кнопка View On GitHub работает и в анроиде честно.. не очень либа. в той что использую я все уже готово и не надо так заморачиваться. При том что я веб сокет юзаю на java ee приложении, а те примеры сделаны на простом приложении. там либа, можно пользовать где угодно. там заморачиваться тоже не надо. запустить сервер, и обработчик. можешь взять из tomcat там ещё проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:03 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадятам либа, можно пользовать где угодно. там заморачиваться тоже не надо. запустить сервер, и обработчик. можешь взять из tomcat там ещё проще в той что я использую даже сервер запускать не надо, его даже писать не надо. Создать класс, добавить аннотацию @SeverEndpoint, прописать все On типы, так же аннотациями и радоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:10 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklop, в общем, какую либу использовать - дело вкуса. я работал и кошачьей и с http://tootallnate.github.io/Java-WebSocket/ большой разницы не увидел. главное организовать формат передаваемых данных, чтоб удобно было . я выбрал команда+разделитель+данные. таким образом я могу обеспечить передачу между сервером и клиентом как для текстовых данных, так и для бинарных. данные могут представлять из себя как json, так и любую строку, в том числе и html строка, что позволяет делать "серверный рендеринг" и обеспечить простую вставку в дом буквально одной строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:12 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
Tsyklopв той что я использую даже сервер запускать не надо, его даже писать не надо. Создать класс, добавить аннотацию @SeverEndpoint, прописать все On типы, так же аннотациями и радоваться.запускать сервер - образное выражение - просто ставится слушатель порта. что есть тоже самое сто и @SeverEndpoint. по сути. в либе tomcat Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:19 |
|
||
|
Внутренний не статический класс. Верный подход? WebSocket
|
|||
|---|---|---|---|
|
#18+
вадяя выбрал команда+разделитель+данные.такое позволяет передавать данные и выбирать тот метод, который обрабатывает эти данные. это на серверной стороне, на клиентской - функция , которая обрабатывает данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:22 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2122119]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
90ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 18ms |
| total: | 249ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...