Deepthroat » 29.09.2007 19:57:06
Протокол и новички никак не связаны. Новичек должен видеть ярлык, который ему надо кликнуть, чтобы все работало. Это все UI, но никак не протокол.
Говорить сейчас о сервере, о клиентах, о том, что это будет написано на асме для различных осей и пр. бессмысленно. Сначала надо разработать спецификацию (ну или, на худой конец, идею) протокола. А уже потом и думать, на чем, как и для чего это все программировать.
Вы хотите создать сложный протокол, который будет эффективным? А с чего бы это сложному быть эффективней? Обычно, чем проще, тем и эффективнее, и тем популярнее. Посмотрите на HTTP. И потом, чего вы хотите от эффективности чата? Чтобы сообщение передавалось на 2 мс быстрее, чем в аналогах? А оно того вообще стоит?
И кстати, так чат для локалки или для интернета? Если для локалки, то тут и протокола-то никакого не надо - храни на сервере соответствия name:ip, отдавай клиентам IP по имени и пусть себе p2p соединяются. Куда уж эффективнее. Для многопользовательского чата можно все сообщения направлять по схеме Me->Server->EverybodyExceptMe или Me->Server->SeveralUsers, для приватов.
А вот для интернета чат не помешал бы. Только альтернативу я вижу не в централизации (зачем, есть же ICQ и иже с ней), а как раз в возможности создания своей сети общения. Т.е. есть несколько пользователей (студенческая группа, например), знаниями в области IT никто не обладает, т.е. свой сервер поднять и содержать нереально, но им нужен чат только для своих. При этом, у всех ADSL с внутренними IP, т.е. даже с p2p возникают проблемы. Максимум, что допускается поручить пользователям для организации сетки - это установить и запустить одну программу и разослать всем участникам один файл с настройками/служебной инфой, который программа попросит указать или создаст. При этом создатель файла, который должен распространить его среди избранных, автоматически становится супер-пользователем/админом чата.
Если кто-нибудь сделает такой чат - честь ему и хвала. Мне для этого не хватает только технологии соединения p2p пользователей, сидящих на ADSL без внешнего IP.