Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   На чём лучше писать сервер чата (http://www.flasher.ru/forum/showthread.php?t=202324)

grafillo! 10.07.2013 01:34

На чём лучше писать сервер чата
 
Добрый день, хотелось бы узнать мнение опытных коллег на чём лучше писать сервер чата на сокетах или на хмл технологии, хочется услышать плюсы и минусы. Что больше расходует трафика, что больше грузит сервер, легко ли получить доступ к хмл в целях взлома? И также ваше мнение.

C4Grey 10.07.2013 02:20

Подойдет любой язык, на котором можно легко реализовать поддержку сокетов(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 :)

grafillo! 10.07.2013 12:08

язык написания сервера будет пхп, интересует технология создания, то есть вы склоняетесь к сокетам,
а они сильно нагружают сервер если допустим одновременно 2000 чел в чате и как обтосит дело с трафиком?
сервер на ас3 впервые слышу надо почитать про него)

Psycho Tiger 10.07.2013 13:50

Сокет – способ передачи данных. XML – способ представления данных.
Ваш вопрос звучит как – "На чем лучше поехать на море? На машине или по дорогам?". Можно и на машине, и по дорогам.

grafillo! 10.07.2013 15:11

eсть технология создания чата на сокет сервере она не предусматривает использование xml, данные тупо передаются всем подключённым клиентам + сервер должен быть всегда запущен
есть технология создания чата при которой данные передаются посредством xml файла, который используется как посредник при этом пхп скрипт на сервере тупо работает с массивом данных xml
типа вот в этом вопрос какой из двух методов выбрать х)

caseyryan 10.07.2013 17:56

Сокеты намного лучше. Менее ресурсоемки, работают быстрее. Второй вариант чаще используется как http-failover. Если по сокету подключиться невозможно, по каким-то причинам, например брандмауэр блокирует (что вероятнее всего).
Но тут можно однозначно сказать, если планируются большие количества пользователей в чате - в топку php. Не лучший это вариант для реалтаймового общения.

grafillo! 11.07.2013 00:08

а есть какаято разница между сервером на джаве и пхп?
и какой же тогда лучше вариант?

bifidokk 11.07.2013 08:53

Цитата:

Сообщение от grafillo! (Сообщение 1140698)
а есть какаято разница между сервером на джаве и пхп?
и какой же тогда лучше вариант?

да. это разные языки программирования.
если вам нужно отправить сообщение на сервер и оттуда ретранслировать его другим юзерам, то разницы нет — оба это умеют.
лучший вариант тот, который подходит под вашу задачу и более удобен для вашей разработки.

Добавлено через 3 минуты
если вам интерсен действительно хорошо работающий сокет-сервер на php, посмотрите в сторону phpDaemon (там как раз есть пример с чатом) или Ratchet http://socketo.me/demo

Psycho Tiger 11.07.2013 11:53

Для этой задачи я бы выбрал Groovy (что-то вроде "прокачанной" Java. Тоже на JVM.) или Python.
Хорошо будет гоняться и на node.js.

AlexCooper 11.07.2013 14:57

Можно сократить часть ресурсов и соединять пользователей на прямую через пиринговые сети (р2р) + FMS для тех у кого не получилось подключиться. В таком случае достаточно будет знаний AS3


Часовой пояс GMT +4, время: 15:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.