|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.06.2009, 17:20 | #201 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Я намерено запихнул в команду личного сообщения ник того, кому сообщение предназначается, ...это работает эффективнее, к тому же идет защита. Если случайно совпадет сторонняя команда на 2 первых байта, то сервер либо падет, либо неверно адресует приват. Если у вас будет система регистрации, то она просто не даст вводить ник, который уже существует в БД, об этом я уже писал выше.
При отключении клиента ничего не требуется, сервер сам "понимает" момент "отпада" или корректного отключения и обновляет списки, отсылая всем клиентам.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
16.06.2009, 19:26 | #202 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 36
|
Перегрузка сервера
Какой серверный ПК нужен по мощности?
Сколько примерно клиентов может обработать сервер? |
16.06.2009, 22:50 | #203 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Не пытайтесь в таком виде как сейчас использовать в качестве глобального чата, ...теоретически на сокет одновременно можно посадить в районе 30 тыс. клиентов, но вот когда вы будете обновлять список, будут тормоза, по любому поводу рассылка строчки длиной достаточно большой. Сейчас до 256 клиентов одновременно. Если надумаете больше, создавайте команды: "Новый клиент вошел" и "Клиент покинул чат", чтобы трафик был минимальным, и обработка была быстрее.
Сервер - любой ПК, главное - широкий канал, более 1Мбит/с, если клиентов много.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
17.06.2009, 09:10 | #204 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
Но как впихнуть это в процедуру отключения клиента "Dicconnect" или закрытия формы без таймеров и задержек никак не могу догнать... Просьба к автору разжевать мне ЭТОТ вопрос (именно отправка сообщения перед разрывом соедининия)
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
|
17.06.2009, 16:32 | #205 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Сразу запомните раз и на всегда - клиенту ничего нельзя поручать выполнить, рассчитать и отослать серверу, поскольку он клиент, и этим все сказано, ...при всем уважении, на программном уровне к нему ноль доверия изначально.
Можно поступить совсем просто, не позволяя клиенту управлять сервером, и не загружая сервер расчетами, ведь он итак знает кто отвалился, раз шлет новую строку списка, и ему знать кто конкретно нет надобности, ...разумеется, если сервер - центральный узел, не средство общения. Так вот, ...у нас клиент получает строку списка пользователей в процедуре ClientSocketRead, смотрите case 2: , перед очисткой списка UserListView, загоните его содержимое в массив, дальше пусть код все проделает что написано, в конце параллельно в цикле проверяйте новый список и массив, если в массиве значится другой ник на очередном пункте, то выводим его на экран с техническими данными, мол "Клиент, ник, отключился, время", и перепрыгиваем на следующую ячейку массива а в списке значится прежняя, и так дальше. В принципе все просто, две переменные счетчика, та что отвечает за массив - скачет )).
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
17.06.2009, 17:07 | #206 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
1. Когда клиент отсылает текст.сообщение он хочет-не хочет отсылает команду серверу и указывает что это текст.сообщение которое нужно отослать всем клиентам, так почему же при отвале клиента не послать ТЕКСТ.СООБЩЕНИЕ что я мол отваливаюсь? 2. Если реализововать регистрацию клиентов на сервере на предмет несовпадения ников то отсылается ник, пароль, запрос на разрешение регистрации и т.д. Я хочу реализовать поключение клиентов с разными правами (админ, модератор, юзер) которые имеют привилегии (бан, кик и т.д.) - как быть в ЭТОМ случае с отсылкой команд серверу??? или ВЫ хотите сказать что при, хотя бы в 100-200 клиентов, этим должен заниматься сервер??? как это реализовать только одним сервером??? Писать алгоритм на мат, флуд, оскорбление, унижение, злоупотребление шрифтами, цветом и размером текста и т.д. или проще чтоб было несколько человек которые имели право забанить, кикнуть и т.д. - тогда опять же нада слать команды с клиента серверу... 3. Можна налепить в чат много чего полезного (запрос точного времени и даты, информации о клиенте которая будет вводиться при регистрации, выдача сервером фразы дня или анекдота и т.д.), все это уже смахивает на IRC-канал но тем не мение... и все это упирается в команды серверу!!! Хочу получить ответ от автора по каждому пункту.
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
|
17.06.2009, 19:16 | #207 | |||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Хорошо, буду рассуждать логически.
Цитата:
Цитата:
Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 17.06.2009 в 19:29. |
|||
18.06.2009, 10:07 | #208 | |||
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Цитата:
Цитата:
Цитата:
Я неправильно выразился...я имел ввиду запрос, а не команду. Запросами можна разграничить права пользователей? Я так понял клиент шлет запрос на бан другого клиента, сервер у себя проверяет права пользователя который отослал запрос, если право у него(пользователя) есть он(сервер) банит пользователя, если нет - отказ...Правильно???
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
Последний раз редактировалось spirit-ua; 18.06.2009 в 10:42. |
|||
18.06.2009, 16:09 | #209 | ||||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Код:
Цитата:
Цитата:
Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
||||
18.06.2009, 16:19 | #210 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
Так собственно вопрос: как сделать?
Дисконект происходит раньше за отправку, через таймер или как? Это я понимаю, алгоритм буду думать...
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обновление в блоге - Создание клиент-сервера | Pblog | Обсуждение статей | 0 | 03.10.2007 17:12 |
обновление в блоге - Диплом. Создание и продвижение сайта - готовь сани летом, а дипл | Pblog | Обсуждение статей | 0 | 31.08.2007 20:00 |
обновление в блоге - USB Холодильник | Pblog | Обсуждение статей | 0 | 25.06.2007 14:13 |
обновление в блоге - О ярлыках | Pblog | Обсуждение статей | 0 | 27.05.2007 03:17 |