
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
21.11.2015, 15:15
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Пишу чат (или скайп, или аську) для использования на сайте. Требуется показывать пользователю вновь поступившие сообщения в режим реального времени. Размышления как это сделать такие: Периодически по таймеру, 2-3 раза в минуту, запрашиваем не появились ли непрочитанные сообщения, в случае появления даем звуковой сигнал и рисуем запечатанный конвертик. Все хорошо, НО! если пользователь откроет на сайте несколько вкладок код будет дублироваться, запросы на наличие обновлений будут делаться с каждой открытой вкладки, в несколько раз чаще, звуковой сигнал на каждое новое сообщение тоже прозвучит несколько раз. А как можно избежать этого? Есть программный способ на js определить что этот сайт уже открыт в другой вкладке? Или такие задачи как-то по другому делаются? Буду благодарен за любые подсказки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2015, 15:56
|
|||
|---|---|---|---|
|
|||
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2015, 21:44
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
ЛебедкинПишу чат (или скайп, или аську) для использования на сайте. Требуется показывать пользователю вновь поступившие сообщения в режим реального времени. Размышления как это сделать такие: Периодически по таймеру, 2-3 раза в минуту, запрашиваем не появились ли непрочитанные сообщения, в случае появления даем звуковой сигнал и рисуем запечатанный конвертик. Все хорошо, НО! если пользователь откроет на сайте несколько вкладок код будет дублироваться, запросы на наличие обновлений будут делаться с каждой открытой вкладки, в несколько раз чаще, звуковой сигнал на каждое новое сообщение тоже прозвучит несколько раз. А как можно избежать этого? Есть программный способ на js определить что этот сайт уже открыт в другой вкладке? Или такие задачи как-то по другому делаются? Буду благодарен за любые подсказки. websocket и все проблемы забыты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.11.2015, 23:35
|
|||
|---|---|---|---|
|
|||
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
вадя, о, вадя нарисовался. Расскажи где про websockets почитать. Давно хотел заняться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 10:25
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
вадяwebsocket и все проблемы забыты я читал на википедии, что в опере и лисе по умолчанию websockets отключен, из-за потенциальных проблем с безопасностью. это есть большая проблема, т.к. часть пользователей чатом просто не смогут пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 10:50
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
а еще я так и не понял, как websocket может помочь решить проблему открытия нескольких окон с одного сайта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:13
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
MikkiMouse, https://learn.javascript.ru/websockets тут для браузера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:15
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкинвадяwebsocket и все проблемы забыты я читал на википедии, что в опере и лисе по умолчанию websockets отключен, из-за потенциальных проблем с безопасностью. это есть большая проблема, т.к. часть пользователей чатом просто не смогут пользоваться. это было давно, даже в ишаках последних есть такое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:20
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкина еще я так и не понял, как websocket может помочь решить проблему открытия нескольких окон с одного сайта? тут надо конкретно решать проблему от чего защищаться— на сервере проверять с какого ip идет подключение и по ws сообщить на вторично открытые окна о недопустимости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:27
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
тут надо в мозгах закрепить — сервер может САМ отправлять сообщения клиентам. сообщения это может быть всё что угодно. к прмеру у меня первая часть (до определенного разделителя) - команда, точнее имя функции, которая обрабатывает, следующие дальше данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:33
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкина еще я так и не понял, как websocket может помочь решить проблему открытия нескольких окон с одного сайта? используя ws не возникнет той проблемы, что у тебя в начале — сообщения от сервера можно направлять только на первую открытую вкладку/окно и долбить сервер запросами не требуется , нагрузка на сервер минимальна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:50
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
да, я понял. то что сервер сам может отправлять сообщения клиенту и не надо его постоянно опрашивать на появление новых сообщений - это конечно хорошо и очень круто! но проблема у меня немного в другом: допустим пользователь бродит по сайту, открывая при этом разные страницы в разных вкладках, причем страница с самим чатом у него может быть и не открыта. в какой-то момент, бац! ему приходит новое сообщение, которое он должен сразу это заметить. как реализовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 11:53
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
вадяиспользуя ws не возникнет той проблемы, что у тебя в начале — сообщения от сервера можно направлять только на первую открытую вкладку/окно а если пользователь случайно закроет как-раз первую вкладку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:01
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкинда, я понял. то что сервер сам может отправлять сообщения клиенту и не надо его постоянно опрашивать на появление новых сообщений - это конечно хорошо и очень круто! но проблема у меня немного в другом: допустим пользователь бродит по сайту, открывая при этом разные страницы в разных вкладках, причем страница с самим чатом у него может быть и не открыта. в какой-то момент, бац! ему приходит новое сообщение, которое он должен сразу это заметить. как реализовать? как два пальца :) варианты на вскидку... посылается команда на открытие страницы в новой вкладке с чатом. , всплывает модальное окно .... просто на каждой странице надо наличие функции для обработки такого сообщения,это не проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:03
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкинвадяиспользуя ws не возникнет той проблемы, что у тебя в начале — сообщения от сервера можно направлять только на первую открытую вкладку/окно а если пользователь случайно закроет как-раз первую вкладку? закроет первую — первой станет следующая :) главное не ограничивать себя старыми подходами :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:06
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
сообщением может быть и кусок html ...., который можно с помощью jQuery вставить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:11
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
вадякак два пальца :) варианты на вскидку... посылается команда на открытие страницы в новой вкладке с чатом. , всплывает модальное окно .... просто на каждой странице надо наличие функции для обработки такого сообщения,это не проблема я имел ввиду не как визуально для пользователя это представить, а как это реализовать этот процесс в плане опроса сервера, чтобы и лишних соединений не было, и сообщение не пропустить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:13
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
вадязакроет первую — первой станет следующая :) как следующая вкладка узнает, что ей пора главной становиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:21
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкинвадязакроет первую — первой станет следующая :) как следующая вкладка узнает, что ей пора главной становиться? это будет автоматом на сервере. каждая страница создаёт подключение — получается массив/список удаление одного — назначает следующего автоматом, вот на него и передаётся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:28
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
т.е. каждая открытая вкладка создает websocket соединение, а на стороне сервера определяем какие соединения относятся к одному и тому-же клиенту, и отправляем событие только на одно соединение для каждого клиента. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:32
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
Лебедкинт.е. каждая открытая вкладка создает websocket соединение, а на стороне сервера определяем какие соединения относятся к одному и тому-же клиенту, и отправляем событие только на одно соединение для каждого клиента. так? да. тут надо логику на сервере продумать, ничего сложного в этом нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 12:39
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
ясно, спасибо за наводку. обдумаю этот вариант. только по ip клиента некорректно определять, за одним ip могут быть разные клиенты (proxy, nat) тут скорей куки передавать надо и по ним ориентироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.11.2015, 22:02
|
|||
|---|---|---|---|
|
|||
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
А зачем куки, если можно каждой сессии номер присвоить и по номеру передавать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.11.2015, 13:12
|
|||
|---|---|---|---|
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
qi_ipА зачем куки, если можно каждой сессии номер присвоить и по номеру передавать? ну в принципе можно и номер сессии, либо id пользователя и т.п. это уже не так принципиально, сессия все-равно на куках держится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.11.2015, 15:18
|
|||
|---|---|---|---|
|
|||
разработка чата (или скайпа, или аськи) для сайта |
|||
|
#18+
наверное лучше куки. один пользователь может зайти с двух разных браузеров. или с планшета и десктопа. а куки говорят о том, что это один браузер. sockjs кстати, очень хорошая вещь.. не всегда с websocket удается подружиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=22&tablet=1&tid=1445609]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
145ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 441ms |

| 0 / 0 |
