powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Внутренний не статический класс. Верный подход? WebSocket
25 сообщений из 61, страница 2 из 3
Внутренний не статический класс. Верный подход? WebSocket
    #39630774
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevМинусы примера
это был пример решения задачи в общем виде, не применительно к сокетам, сервлетам, кол-ву запросов или чему либо еще. на счет как это называется, без разницы :)

Leonid Kudryavtsevпередавать обрабатываемые данные через параметры.
Лишняя операция создания объекта лично меня обычно напрягает
они и так будут через параметры передаваться. вопрос в том куда и как. на счет создания объектов - это все детали реализации. у нас вполне могут быть thread safe синглтоны (не в смысле статический класс, а в смысле один экземпляр)

Leonid Kudryavtsevмного букв, т.к. нужно для каждой операции создавать свой класс. Но тут вполне могут помочь лямбды и клосуры в новой Java. По смыслу будет тоже самое, но буковок в итоге может оказаться меньше и код получится более компактный.

Но компактность IMHO это плюс для случаев, когда операций мало. Если операций много, то лучше через классы, т.к. компактности в любом случае не получится, но с лямбдами можно сотворить помойку, а с классами хоть и будет много букв, зато строгая и логичная системаименно так - это тоже детали реализации - о конечно задаче ведомо только ТС. если у нас куча функций со своими зависимостями (репозитарии, сервисы) - то без классов никак, если у нас 4-5 команд, можно как угодно решать.
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630776
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяты не понял проблемы
вопрос не в количестве обработчиков, а как их вызвать
ок, какая разница 300 методов или 300 условных строчек вида
type1 --> class1
это точно такой же табличный метод записи, только у тебя вместо Map - класс, вместо ключей - названия методов, а вместо значений - их тела
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630781
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaок, какая разница 300 методов или 300 условных строчек вида
type1 --> class1
это точно такой же табличный метод записи, только у тебя вместо Map - класс, вместо ключей - названия методов, а вместо значений - их тела
у тебя все в одном файле
у меня в разных файлах
я просто добавляю/удаляю/редактирую нужный метод,
мне его просто найти -есть страница с которой работаю - есть для неё файл/класс.
я работаю с одно страницей не мешаю никому работать с другой....
для выбора нужного ты перебираешь все до нужного, я вызываю нужный.
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630783
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
у меня в файле/классе 20-30 методов
у тебя в одном все 300...
мне найти просто, тебе .....
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630791
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяу тебя все в одном файле
у меня в разных файлах
У меня конфигурация в одном месте, у тебя размазана тонким слоем повсюду. кроме того никто не мешает пойти дальше и разработать механизм само-регистрации обработчиков. все зависит от конкретной задачи - я не знаю, что делает ТС, я вижу только входящий метод и информацию о том, что там стопицот свитчей.

вадямне его просто найти -есть страница с которой работаю - есть для неё файл/класс
у меня нет никаких страниц, я описал способ централизованной обработки входящих сообщений

вадяя работаю с одно страницей не мешаю никому работать с другой.
что-что?

вадядля выбора нужного ты перебираешь все до нужного, я вызываю нужный
вадя, соберись. где у меня "перебираешь"?

вадяу меня в файле/классе 20-30 методов
что-то мало, у настоящих мастеров все вообще в одном классе
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630798
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaчто-то мало, у настоящих мастеров все вообще в одном классе300 методов в одном классе? ну уж нет....
chpashaвадяя работаю с одно страницей не мешаю никому работать с другой.
что-что?если я правлю одну страницу то я работаю с двумя файлами jsp странице и файлом с методами для этой страницы , мне никто не мешает и я никому не мешаю .
chpashaвадядля выбора нужного ты перебираешь все до нужного, я вызываю нужный
вадя, соберись. где у меня "перебираешь"?покажи как ты по имени метода вызываешь этот метод.
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630800
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaвадямне его просто найти -есть страница с которой работаю - есть для неё файл/класс
у меня нет никаких страниц, я описал способ централизованной обработки входящих сообщенийу меня тоже централизованный метод, вот только сами методы разнесены для удобства по разным файлам
chpashaУ меня конфигурация в одном месте, у тебя размазана тонким слоем повсюду. кроме того никто не мешает пойти дальше и разработать механизм само-регистрации обработчиков. все зависит от конкретной задачи - я не знаю, что делает ТС, я вижу только входящий метод и информацию о том, что там стопицот свитчей.у меня не размазана - у меня есть четкое соответствие страницы браузера с методами , которые обрабатывают данные на этой странице
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630807
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя300 методов в одном классе? ну уж нет
это был сарказм. а 30 в самый раз да?

вадяесли я правлю одну страницу то я работаю с двумя файлами jsp странице и файлом
откуда у нас уже взялись какие-то jsp, где в топике про jsp? может у ТС messenger на сокетах? задача сформулирована довольно общим образом, особенно в разрезе применения внутреннего класса. Но отвечая на твой вопрос, у нас 16 апреля 2018, курс биткоина 8.087,46€ , merge уже изобрели.


вадяпокажи как ты по имени метода вызываешь этот метод
у нас нет имени метода, есть тип сообщения. впрочем это не меняет сути. я специально для тебя продублирую то, что уже написал один раз выше, так и быть

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
//псевдокод для понимания идеи
Map<MgsType, Class<? extends MessageHandler> messageHandlerMap= {
   type1 --> MyMessageHandler1.class,
   ...
   type47 --> MyMessageHandler47.class
}

//здесь наш "перебор"
messageHandlerMap.get(type).newInstance()
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630817
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,
допер Ваш вариант. Но есть вопрос. как мне в каждом обработчике получать доступ к списку подключенных к сокету юзверей? все они хранятся у меня в потоко безопасном листе CopyOnWriteArrayList<WsUser>. Делать этот лист публичным? или package private?
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630828
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaэто был сарказм. а 30 в самый раз да?это у меня 30+ для одной странице в одном файле.
в проекте 10++ страниц - так что 300 это реальная цифра без всякого сарказма.
chpashaоткуда у нас уже взялись какие-то jsp, где в топике про jsp? может у ТС messenger на сокетах?я к примеру привел на чем формируется страница. обновление данных по ws.
страниц на портале может быть много...
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630832
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
@Controller
public class GreetingController {


    @MessageMapping("/hello")
    @SendTo("/topic/greetings")
    public Greeting greeting(HelloMessage message) throws Exception {        
        return new Greeting("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!");
    }

}


то у меня возникает закономерный вопрос набуя козе баян?

Имхо для того, чтобы самому городить вот это вот все - нужно иметь очень веский повод
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630834
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяя к примеру привел на чем формируется страница. обновление данных по ws.
страниц на портале может быть много.
так и какой смысл в сравнении яблок со сливами? У тебя страницы какие-то, у ТС - не понятно что, у меня вообще абстрактный пример решения задачи в общем виде. Причем тут тогда кол-во методов и совместное редактирование одного файла в отрыве от задачи?
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630836
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha...Просто когда я смотрю, на то, что перетерли тут на двух страницах, а потом на примеры из спринга...

А можно просьбу от чайника и ламера:
когда ссылаетесь на спринг, давайте пожалуйста RTFM на книжку/доку.

AFAIK спринг он большой и если кто с ним не работал (например я), то примеры и анотации выдернутые из контекста - нифига не понятны (((
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630837
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,

это всё красиво пока в теории.
и в малом количестве
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630841
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяchpasha,

это всё красиво пока в теории.
и в малом количестве
Да нет у Chpasha никакой теории. Банальный паттерн command + паттерн factory. Что тут обсуждать, лично мне вообще не понятно.

Если у ТС есть вопросы по реализации, то просьба ТС их более явно сформулировать.

Я бы попытался привести пример кода, но у меня новый компьютер и инет за проксей. 180 Mb eclipse уже 3 часа скачаться не могут (((
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630842
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaтак и какой смысл в сравнении яблок со сливами? У тебя страницы какие-то, у ТС - не понятно что, у меня вообще абстрактный пример решения задачи в общем виде. Причем тут тогда кол-во методов и совместное редактирование одного файла в отрыве от задачи?ты читай всё - 21341559
у него 10 страниц...
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630852
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevкогда ссылаетесь на спринг, давайте пожалуйста RTFM на книжку/доку
дружище, spring + socket и первая же ссылка на пример, вторая на доку.

Leonid KudryavtsevAFAIK спринг он большой и если кто с ним не работал (например я), то примеры и анотации выдернутые из контекста - нифига не понятны (((ну извините. я (повторюсь), с сокетами в спринг тоже не работал, но мне взглянув на пример вполне понятно, что там происходит в общих чертах

Сообщение, отправленное по адресу "/hello" попадает в наш метод greeting - т.е. у нас уже из коробки роутинг (по сути предмет этого топика) и конвертация json -> dto. Далее мы возвращаем другой dto который в свою очередь снова превращается в json и улетает всем подписчикам

вадяэто всё красиво пока в теории.
и в малом количестведа-да, spring для hello world, твой велосипед для дела - строго в таком порядке
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630855
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяchpashaтак и какой смысл в сравнении яблок со сливами? У тебя страницы какие-то, у ТС - не понятно что, у меня вообще абстрактный пример решения задачи в общем виде. Причем тут тогда кол-во методов и совместное редактирование одного файла в отрыве от задачи?ты читай всё - 21341559
у него 10 страниц...

при чем тут страницы к вебсокету который сллужит сервером? подключатся я буду к этому серверу на каждой странице. На каждой будут свои сообщения. Но сервер должен обрабатывать их ВСЕ, ВСЕ, со всех страниц. Сервер он один для всех страниц.

Зачем приплетать другую тему сюда. не пойму.
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630856
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяты читай всё - 21341559
у него 10 страниц...
мне больше заняться нечем. я ответил общим образом на общий вопрос
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630859
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaну извините. я (повторюсь), с сокетами в спринг тоже не работал, но мне взглянув на пример вполне понятно, что там происходит в общих чертахценное замечание, дальше можешь не продолжать
chpashaСообщение, отправленное по адресу "/hello" попадает в наш метод greetingещё более ценное высказывание...
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630860
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaмне больше заняться нечем. я ответил общим образом на общий вопрособщим образом..
куда уж далеее
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630861
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpashaLeonid Kudryavtsevкогда ссылаетесь на спринг, давайте пожалуйста RTFM на книжку/доку
дружище, spring + socket и первая же ссылка на пример, вторая на доку.

Leonid KudryavtsevAFAIK спринг он большой и если кто с ним не работал (например я), то примеры и анотации выдернутые из контекста - нифига не понятны (((ну извините. я (повторюсь), с сокетами в спринг тоже не работал, но мне взглянув на пример вполне понятно, что там происходит в общих чертах

Сообщение, отправленное по адресу "/hello" попадает в наш метод greeting - т.е. у нас уже из коробки роутинг (по сути предмет этого топика) и конвертация json -> dto. Далее мы возвращаем другой dto который в свою очередь снова превращается в json и улетает всем подписчикам

вадяэто всё красиво пока в теории.
и в малом количестведа-да, spring для hello world, твой велосипед для дела - строго в таком порядке

Нет. фреймворки я не использую (пока что). Использую либу для сокетов. Она весьма проста в использовании и не требует ничего сверхъестественного.
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630862
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaдружище, spring + socket и первая же ссылка на пример, вторая на доку.
ну так я и говорю, хоть url кидайте. А то по анотациям из кода фиг поймешь, из какого места этот пример. По крайне мере, лично мне было не понятно (((
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630865
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяценное замечание, дальше можешь не продолжать
вадяещё более ценное высказывание..

тут ты меня уел

вадяобщим образом..
куда уж далеее
я должен был на общий вопрос без контекста написать 20 страниц говнокода? извините, учту на будущее
...
Рейтинг: 0 / 0
Внутренний не статический класс. Верный подход? WebSocket
    #39630869
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopНет. фреймворки я не использую
зря, тебе сейчас кажется, что ты экономишь кучу времени, и все такое свое родное, понятное. Но однажды эта экономия вернется и ударит по башке. Ну если конечно ты не уволишься, тогда прилетит уже другому. Например когда уволится вадя, фирму просто закроют

Tsyklopне требует ничего сверхъестественного.
проекты имеют свойство разрастаться и усложняться
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Внутренний не статический класс. Верный подход? WebSocket
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]