|
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
На чём лучше писать сервер чата
Добрый день, хотелось бы узнать мнение опытных коллег на чём лучше писать сервер чата на сокетах или на хмл технологии, хочется услышать плюсы и минусы. Что больше расходует трафика, что больше грузит сервер, легко ли получить доступ к хмл в целях взлома? И также ваше мнение.
|
|
|||||
Подойдет любой язык, на котором можно легко реализовать поддержку сокетов(XML лучше не использовать из-за большой избыточности). Советую выбирать между Java, C++ и C#. Если нету предпочтений и навыков работы с этими ЯП, лучше выбрать для изучения Java, так будет проще всего(в случае выбора из этих 3 ЯП) реализовать кроссплатформенность сервера + есть очень много библиотек, фреймворков, и примеров на все случаи. По поводу расхода трафика: основной объём приходится на поле Data TCP/IP или UDP пакетов, соответственно язык никакой роли не играет, только формат сообщения. Для чата это может быть три типа сообщений:
1. История предыдущих сообщений, которую получает входящий в чат пользователь. Её можно хранить в переменной на сервере(то есть, в оперативной памяти) и периодечиски чистить, кэшировать на винте в файл(и отправлять новому пользователю этот файл), записывать в БД, и т.п. 2. Обычное сообщение - это может быть строка вида "user:message", JSON-структура, AMF/ProtoBuf-сериализированній объект...все что угодно. 3. Сервисные сообщения, вроде комманды серверу отправить список всех активных пользователей. P.S. Рассматриваем простой чат, без приватных сообщений, создания пользователями каналов/групп, и т.п. плюшек. P.P.S. Забыл еще одну штуку - в AIR можно создавать ServerSocket , так что к списку ЯП можно смело добавлять ActionScript 3 |
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
язык написания сервера будет пхп, интересует технология создания, то есть вы склоняетесь к сокетам,
а они сильно нагружают сервер если допустим одновременно 2000 чел в чате и как обтосит дело с трафиком? сервер на ас3 впервые слышу надо почитать про него) |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Сокет – способ передачи данных. XML – способ представления данных.
Ваш вопрос звучит как – "На чем лучше поехать на море? На машине или по дорогам?". Можно и на машине, и по дорогам.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
eсть технология создания чата на сокет сервере она не предусматривает использование xml, данные тупо передаются всем подключённым клиентам + сервер должен быть всегда запущен
есть технология создания чата при которой данные передаются посредством xml файла, который используется как посредник при этом пхп скрипт на сервере тупо работает с массивом данных xml типа вот в этом вопрос какой из двух методов выбрать х) |
|
|||||
Сокеты намного лучше. Менее ресурсоемки, работают быстрее. Второй вариант чаще используется как http-failover. Если по сокету подключиться невозможно, по каким-то причинам, например брандмауэр блокирует (что вероятнее всего).
Но тут можно однозначно сказать, если планируются большие количества пользователей в чате - в топку php. Не лучший это вариант для реалтаймового общения. |
|
|||||
Регистрация: Sep 2011
Сообщений: 366
|
а есть какаято разница между сервером на джаве и пхп?
и какой же тогда лучше вариант? |
|
|||||
Регистрация: Jan 2011
Сообщений: 200
|
Цитата:
если вам нужно отправить сообщение на сервер и оттуда ретранслировать его другим юзерам, то разницы нет — оба это умеют. лучший вариант тот, который подходит под вашу задачу и более удобен для вашей разработки. Добавлено через 3 минуты если вам интерсен действительно хорошо работающий сокет-сервер на php, посмотрите в сторону phpDaemon (там как раз есть пример с чатом) или Ratchet http://socketo.me/demo |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Для этой задачи я бы выбрал Groovy (что-то вроде "прокачанной" Java. Тоже на JVM.) или Python.
Хорошо будет гоняться и на node.js.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Можно сократить часть ресурсов и соединять пользователей на прямую через пиринговые сети (р2р) + FMS для тех у кого не получилось подключиться. В таком случае достаточно будет знаний AS3
__________________
return this... |
Часовой пояс GMT +4, время: 17:17. |
|
« Предыдущая тема | Следующая тема » |
|
|