powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Чат для сайта
25 сообщений из 31, страница 1 из 2
Чат для сайта
    #38122738
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, хочу реализовать такое: Пользователь отправляет асинхронно текст админу. Админ читает у себя на странице этот текст и отвечает юзеру. Загвоздка в том чтобы ответ получил именно этот пользователь, а ни кто то другой.
С помощью чего такое можно реализовать?
...
Рейтинг: 0 / 0
Чат для сайта
    #38122885
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
net send :)
а хранить reply-to в сообщении не вариант?
...
Рейтинг: 0 / 0
Чат для сайта
    #38123026
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторnet send :)
а хранить reply-to в сообщении не вариант?

Расскажите пожалуйста подробнее
...
Рейтинг: 0 / 0
Чат для сайта
    #38123037
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahРасскажите пожалуйста подробнее
О чем? Храните в сообщении адрес отправителя, чтобы потом можно было ответ маршрутизировать по конкретному адресу.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123056
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно сказать не понял, что именно хранить в сообщении
...
Рейтинг: 0 / 0
Чат для сайта
    #38123067
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahЧестно сказать не понял, что именно хранить в сообщении
любой уникальный идентификатор по которому вы сможете найти отправителя сообщения.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123129
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения забыл сказать что пользователи не зареганы на сайте, поэтому уникального идентификатора нет + юзер может начать писать админу с десяти вкладок и в каждое окно нужно вернуть свое сообщение
...
Рейтинг: 0 / 0
Чат для сайта
    #38123130
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczZhazhahЧестно сказать не понял, что именно хранить в сообщении
любой уникальный идентификатор по которому вы сможете найти отправителя сообщения.
Я думаю вы переоцениваете ТС, насколько я понял там банальный чат, меня поначалу тоже смутила фраза асинхронно отправляю.. Наверное имеется ввиду что-то вроде - выделил текст - нажал пожаловаться админу - админ увидел это на отдельной странице - написал ответ, а юзер, который писал увидит это уже в основном окне чата. Хотя конечно тоже могу ошибаться:)
...
Рейтинг: 0 / 0
Чат для сайта
    #38123136
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahПрошу прощения забыл сказать что пользователи не зареганы на сайте, поэтому уникального идентификатора нет + юзер может начать писать админу с десяти вкладок и в каждое окно нужно вернуть свое сообщение

У каждого юзера должен быть идентификатор, иначе как ты их различишь? Обычно генерируется временное имя noname1, noname2, и делается соотвествие между сгенерированным именем и куками например
...
Рейтинг: 0 / 0
Чат для сайта
    #38123141
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahПрошу прощения забыл сказать что пользователи не зареганы на сайте, поэтому уникального идентификатора нет + юзер может начать писать админу с десяти вкладок и в каждое окно нужно вернуть свое сообщение
Если сайт на Java, что подразумевает название этого форума, то у каждого юзера есть jsessionid, котрым можно воспользоваться.
Сложить сообщение юзеру в сессию и проверять при каждом заходе.
Вы задаёте совершенно общий вопрос, не вдаваясь в детали реализации. Такое ощущение что на Java есть единственный возможный способ реализовать сайт и чат. Поэтому мы заведомо все должны знать как именно у вас что уже реализовано.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123182
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ думаю вы переоцениваете ТС, насколько я понял там банальный чат, меня поначалу тоже смутила фраза асинхронно отправляю.. Наверное имеется ввиду что-то вроде - выделил текст - нажал пожаловаться админу - админ увидел это на отдельной странице - написал ответ, а юзер, который писал увидит это уже в основном окне чата. Хотя конечно тоже могу ошибаться:)

Принцип тот же, однако смотрите:

Что если юзер откроет еще одну вкладку в браузере и опять начнет писать. Что тогда делать? +надо всегда быть в курсе того онлайн пользователь или нет. Уже банальный чат превращается в кучу кода.

Очень классный вариант как мне показалось сейчас ServerSocket думаю покопать в эту сторону.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123188
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahЧто если юзер откроет еще одну вкладку в браузере и опять начнет писать. Что тогда делать? +надо всегда быть в курсе того онлайн пользователь или нет. Уже банальный чат превращается в кучу кода.
Ну, современные браузеры вроде разумеют, что другая вкладка того же сайта это ещё не новая сессия.

ZhazhahОчень классный вариант как мне показалось сейчас ServerSocket думаю покопать в эту сторону.
WebSocket, а не ServerSocket. Работает не во всех браузерах.
Или вы лепите Flash/Applet, тогда можно и через ServerSocket общатся. Но это никак не решает вашей проблемы отсутствия идентификатора.

Можно ещё про COMET вспомнить. Но страшно. Работать надо, а то опять начнется...
...
Рейтинг: 0 / 0
Чат для сайта
    #38123204
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу, современные браузеры вроде разумеют, что другая вкладка того же сайта это ещё не новая сессия.
Я это и имею ввиду: допустим я в данный момент общаюсь с одним человеком, открываю новую вкладку и уже общаюсь с другим человеком. Как на основе сессии определить в какое окно отправить сообщение?
...
Рейтинг: 0 / 0
Чат для сайта
    #38123236
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahЯ это и имею ввиду: допустим я в данный момент общаюсь с одним человеком, открываю новую вкладку и уже общаюсь с другим человеком. Как на основе сессии определить в какое окно отправить сообщение?
Тогда делайте на COMET у каждого окна будет свой канал с сервером. Только тогда у админа тоже будет два окна от одного юзера. :) Оно админу надо?
...
Рейтинг: 0 / 0
Чат для сайта
    #38123289
Zhazhah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТогда делайте на COMET у каждого окна будет свой канал с сервером. Только тогда у админа тоже будет два окна от одного юзера. :) Оно админу надо?

В моем случае надо. Спасибо про COMET только что узнал - это сервер такой?
...
Рейтинг: 0 / 0
Чат для сайта
    #38123305
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZhazhahСпасибо про COMET только что узнал - это сервер такой?
Нет это AJAX long pulling. Страница отправляет запрос серверу. А сервер вместо того чтобы отдать ответ весь сразу, выдаёт его по частям. Каждое сообщение от админа, говорит серверу отдать часть сообщения. Сервер записывает сообщени в response, браузер получает, и обновляет HTML, показывая сообщение юзеру.
Каждое окно браузера создаст свой собственный канал с сервером. Ваша задача это создать UID для такого канала на сервере и связать с чатом админа, чтобы по UID находить response и писать туда ответы.

Гуглите COMET chat - примеров масса.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123334
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас посыпятся возражения, что JSF - это зло, но описанную задачу можно попробовать реализовать используя jsf conversation. На стороне клиента вполне укладываемся в это понятие, на стороне админа придется немного покумекать
...
Рейтинг: 0 / 0
Чат для сайта
    #38123343
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraСейчас посыпятся возражения, что JSF - это зло, но описанную задачу можно попробовать реализовать используя jsf conversation. На стороне клиента вполне укладываемся в это понятие, на стороне админа придется немного покумекать

Вы серьезно считаете что JSF подходящая технология для чата? Да, теоретически конверсейшенс крутая штука, но на то чтобы изучить jsf+seam + настройка проекта - займет гораздо меньше времени чем на изучение cometServlet:) а так как больших преимуществ это не даст, но возможно перформанс просядет - смысл??
...
Рейтинг: 0 / 0
Чат для сайта
    #38123345
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, гораздо больше времени, опечатался.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123356
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraСейчас посыпятся возражения, что JSF - это зло, но описанную задачу можно попробовать реализовать используя jsf conversation. На стороне клиента вполне укладываемся в это понятие, на стороне админа придется немного покумекать
Чат. На JSF. Да с анонимными юзерами. Гы.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123428
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никivanraСейчас посыпятся возражения, что JSF - это зло, но описанную задачу можно попробовать реализовать используя jsf conversation. На стороне клиента вполне укладываемся в это понятие, на стороне админа придется немного покумекать
Вы серьезно считаете что JSF подходящая технология для чата? Да, теоретически конверсейшенс крутая штука, но на то чтобы изучить jsf+seam + настройка проекта - займет гораздо меньше времени чем на изучение cometServlet:) а так как больших преимуществ это не даст, но возможно перформанс просядет - смысл??
Единственный минус в моем предложении - изучение jsf, который по окончании превращается в плюс, так как приобретенный скилл резко повышает шансы найти приличную работу. Кстати, в jsf2.x уже можно обойтись без seam. Беспокоимся о трафике - так никто не заставляет гонять туда-сюда всю форму, достаточно передавать изменения.
cometServlet в данной задаче - несерьезно (ну-ка, сколько одновременно открытых соединений потянет сервер?), разве что решение рассчитано на небольшое количество пользователей, но в этом случае и про перфоманс можно не думать.
Привязываться к сессии + уникальному идентификатору страницы (на каждой закладке браузера ведутся свои переговоры) - изобретать тот же самый conversation.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123438
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraзабыл никпропущено...

Вы серьезно считаете что JSF подходящая технология для чата? Да, теоретически конверсейшенс крутая штука, но на то чтобы изучить jsf+seam + настройка проекта - займет гораздо меньше времени чем на изучение cometServlet:) а так как больших преимуществ это не даст, но возможно перформанс просядет - смысл??
Единственный минус в моем предложении - изучение jsf, который по окончании превращается в плюс, так как приобретенный скилл резко повышает шансы найти приличную работу. Кстати, в jsf2.x уже можно обойтись без seam. Беспокоимся о трафике - так никто не заставляет гонять туда-сюда всю форму, достаточно передавать изменения.
cometServlet в данной задаче - несерьезно (ну-ка, сколько одновременно открытых соединений потянет сервер?), разве что решение рассчитано на небольшое количество пользователей, но в этом случае и про перфоманс можно не думать.
Привязываться к сессии + уникальному идентификатору страницы (на каждой закладке браузера ведутся свои переговоры) - изобретать тот же самый conversation.

Как ни странно, но лично мое мнение, что в вашем сообщении можно поменять местами comet и jsf, тогда все будет правильно:)
...
Рейтинг: 0 / 0
Чат для сайта
    #38123440
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraЕдинственный минус в моем предложении - изучение jsf,

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

ivanraкоторый по окончании превращается в плюс, так как приобретенный скилл резко повышает шансы найти приличную работу.

Субъективно.

ivanracometServlet в данной задаче - несерьезно (ну-ка, сколько одновременно открытых соединений потянет сервер?), разве что решение рассчитано на небольшое количество пользователей, но в этом случае и про перфоманс можно не думать.

В чем проблема количества открытых соединений? Серверу, в целом, пофиг. Разве что на линухе иногда лимит нужно подкрутить.
Чат это почти всегда сервер push, и вот, как раз, обычный polling вместо long polling увеличит нагрузку на сервер значильно.

ivanraПривязываться к сессии + уникальному идентификатору страницы (на каждой закладке браузера ведутся свои переговоры) - изобретать тот же самый conversation.
Только проще в разы.
...
Рейтинг: 0 / 0
Чат для сайта
    #38123489
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczivanracometServlet в данной задаче - несерьезно (ну-ка, сколько одновременно открытых соединений потянет сервер?), разве что решение рассчитано на небольшое количество пользователей, но в этом случае и про перфоманс можно не думать.

В чем проблема количества открытых соединений? Серверу, в целом, пофиг. Разве что на линухе иногда лимит нужно подкрутить.
Чат это почти всегда сервер push, и вот, как раз, обычный polling вместо long polling увеличит нагрузку на сервер значильно.
ivanraПривязываться к сессии + уникальному идентификатору страницы (на каждой закладке браузера ведутся свои переговоры) - изобретать тот же самый conversation.
Только проще в разы.
Возможно, я и ошибаюсь (если cometServlet это какой-то особенный сервлет), но в случае сервлета соединение означает не только открытый сокет, но и поток, хотя бы и ждущий. Так что одной настройкой ОС не обойтись.
А что касается изобретения собственного conversation - ну, наверно, можно, хотя и там наверняка будут подводные камни. Не проще взять готовый велосипед?
...
Рейтинг: 0 / 0
Чат для сайта
    #38123529
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ivanraВозможно, я и ошибаюсь (если cometServlet это какой-то особенный сервлет), но в случае сервлета соединение означает не только открытый сокет, но и поток, хотя бы и ждущий.
Ну, начинается. Так проблема уже не в сокетах а в потоках? По-моему сейчас даже на винде 10К спящих потоков не проблема. А на линухе, так и подавно.

ivanraТак что одной настройкой ОС не обойтись.

Конкретику давайте. Под линухом там строгие лимиты на количество открытых хэндлов, поэтому приходится конфигурять. Под виндой... Ну, если под XP запускать, то да. Нагрузка может оказаться не разумной. Но если нормальный Windows Server взять, то проблем с тысячами потоков и сокетов не будет никакой.

ivanraА что касается изобретения собственного conversation - ну, наверно, можно, хотя и там наверняка будут подводные камни. Не проще взять готовый велосипед?
Если бы это был велосипед. На деле это неподъемная телега о пятнадцати колесах.
Реально вот в этом можно что-то понять, не изучая полного цикла JSF во всех ипостасиях:
http://docs.oracle.com/javaee/6/api/javax/enterprise/context/ConversationScoped.html
Это же просто жесть. Т.е. сформулировать кратко и ёмко что такое ConversationScoped даже в JavaDoc не выходит.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Чат для сайта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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