![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 8
|
Спс большое. Вроде немного прояснилось в голове...
Значит все функции по контролю подключенных flash'ей на клиентах и оповещению остальных о новом юзере ложится на серверное приложение. Я правильно впиливаю? Там надо хранить все активные connection'ы и при появлении нового рассылать им сообщение, а уж они там по получении пусть делают, что положено... P.S. А чё делать, если клиент браузер закрыл? Сокет закроется и на сервере будет у listener'а событие disconnect? |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
В чём разница между клиентом и сервером? Сервер позволяет клиентам открывать соединение, а клиент может запрашивать соединение с сервером. Т.е. сервер по собственному желанию соединиться с клиентом не может.
Что такое сокетное соединение? Соединение, которое продолжает поддерживаться обеими сторонами при наличии обоюдного на то согласия и отсутствия физических неисправностей между ними. Т.е. при открытом сокете сервер может в любой момент послать клиенту сообщение. Клиент серверу тоже. Т.е. если ты хочешь написать, скажем, инстант мессенджер со флэшовым фронт-эндом, то бишь клиентом, то да, флэшовый клиент может открыть сокетное соединение с неким существующим сервером и теоретически неограниченное время получать из сокета сообщения и события. Ответ на последний вопрос: что произойдёт на сервере если пользователь закроет браузер с клиентом, мы не знаем, это зависит исключительно от сервера.
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Banned
Регистрация: Jun 2009
Сообщений: 9
|
Угу, к примеру, простые реализации не распознают статус разрыва - просто проверяют - есть или нет. А более совершенные распознают не только обрыв - ERROR, но еще и подсобытие - CLIENT_DISCONNECT, SESSION_END, IOEXCEPTION, TIMEOUT и т.д., то есть на сервере можно сделать обработку в зависимости от кода разрыва.
|
|
|||||
|
Регистрация: Jul 2009
Сообщений: 8
|
Спасибо, народ! Супер как прояснилось в голове! :-)
Я думаю, на C# все эти события можно поймать в стандартном Socket-объекте... Короче, я так понимаю, сокет - это такой кальян - одна стойка с дымом и куча трубочек. Кто подключился - может в любой момент получить дозу :-)))) Но без дымилки трубочка бесполезна... :-))))))) P.S. А можно ли использовать уже открытые в системе порты для обмена данными? Например, C#-app посылает на клиентский IP на системный открытый порт (ну, не знаю, для какой-нить ненужной фигни вроде SSL), a flash его получает.... Или опять у меня салат в башке? :-\ |
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Цитата:
![]() Oxy_Naum, что у вас за тип проекта на C#? Desktop или WEB где работает ваш листнер? |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 8
|
У меня корпоративная web-application. Клиенты в браузере должен получать real-time реакцию на события на сервере. Желательно REAL-time, а не "частый запрос по таймеру" типа ajax'а. Вот и думали сделать это или ActiveX'ом или Flash'ем, который будет слушать сокет...
P.S. Foli, а за шо Вы так плакали? За мою тупость про сокеты или за кальян? ;-) |
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Цитата:
Что у вас за тип проекта на C#? Desktop или WEB где работает ваш листнер? Потому как вы писали: Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|