войти зарегистрироваться

C++Клиент-серверный чат, используя сокеты Qt/C++ из песочницы

Предисловие


Статья ориентирована в основном на новичков. Целью ее написания является быстрое и максимально подробное описание сокетов, для начального понимания сети и сокетов. В свое время искал подобную, но нужны были подробные примеры. В стандартном примере fortune server/client, который идет с qt очень плохо показывают возможности сокетов.

Итак, сервер умеет:
  • «Слушать» произвольный адрес, порт
  • Авторизовать клиента по имени
  • Отправлять общие, приватные, серверные сообщения
  • Отправлять список пользователей
Клиент умеет подавать соответствующие запросы серверу.

Для понимания это будут Гуи-приложения:

image

В qt существуют классы QTcpSocket и QTcpServer для работы с сокетами. Используя сигналы и слоты, с ними можно работать в неблокирующем (асинхронном режиме). Это значит, если подключение к серверу занимает заметное количество времени, гуи не блокируется, а продолжает обрабатывать события, а когда произойдет подключение (либо ошибка), вызовется определенный слот (в текущем случае подключенный к сигналу connected()).

Node.JSСоздаем чат на Node.js и Socket.IO из песочницы

В данной статье я попытаюсь показать, как можно создать простой чат, используя Node.js в связке с Socket.IO. Изначально я хотел построить чат на чистых Websockets, но столкнулся с практически полным отсутствием готовых реализаций сервера для них в Интернете. Так что решил не изобретать велосипед, а использовать готовую библиотеку.
В моем случае сервер работает под Ubuntu, поэтому все примеры будут для неё (и ссылки в примерах — на него же).

Установка компонентов

Первым делом нам потребуются собственно Node.js (инструкция по инсталляции и ссылки на скачивание здесь) и Socket.IO. Модули для Node.js проще всего устанавливать, используя менеджер npm —
curl http://npmjs.org/install.sh | sh
npm install socket.io

Серверная часть

Структура серверной части такова: сервер принимает сообщение, если это команда — выполняет определенные действия, если просто сообщение — рассылает всем остальным участникам.

Персональные блоги Очень, очень, очень, очень секретный проект

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

Google App EngineПростой чат с помощью Channel API на Google App Engine для Python из песочницы

Представляю вашему вниманию вольный перевод статьи под названием "A Simple Chat using the Channel API". Так же я решил немного добавить своего кода.

Сегодня мы представляем вам новую статью для Google App Engine посвященную Сhannel API, которое появилось в декабре 2010 года в релизе 1.4. С этого момента стала возможной отправка сообщений напрямую с сервера клиенту и обратно без использования polling.
Поэтому стало достаточно просто реализовать чат на Google App Engine. Процесс реализации описан под катом.

Блог компании SqueekПростой SDK, чтобы встроить чат в iOS приложение

Доброго времени суток, Хабрасообщество!
В мае мы писали о нашем iPhone приложении Squeek. Если кратко — Squeek позволяет вам общаться с теми, кто рядом.
Сегодня мы предлагаем вашему вниманию эксклюзивную версию (только для хабраюзеров) Squeek SDK beta.

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

Я пиарюсьОбзор систем онлайн-консультирования (часть 1)

Большинство статей в Рунете, посвященных онлайн-консультированию, носят либо чисто рекламный характер, либо выхватывают лишь небольшую толику возможностей этих систем и практически совершенно не дают точки опоры в выборе оптимального консультанта для ваших нужд, будь вы ИТ-директор крупной компании, владелец интернет-магазина или частный предприниматель, желающий увеличить продажи, через свой сайт. В итоге, приходится устанавливать каждую систему, пробовать многочисленные “клоны”, тратить время и, в результате, разочаровываться в веб-консалтинге, как в инструменте. Данная серия статей задумана неким гидом по технологиям, на которых построены все существующие системы онлайн-консультирования их возможностям и цене. Прочтя этот обзор, вы сможете ориентироваться в том потоке систем, которые сейчас представлены на рынке и, я надеюсь, подобрать именно тот продукт, который удовлетворяет вашим потребностям. Как и все авторы, я не претендую на объективность и все же я старался максимально подробно поделиться той информацией, которой обладаю сам на момент написания статьи. Перед прочтением желательно все же знать хоть что-то об интернет ))), браузерах, иметь понятие о сервере и подобных системах.

Блог компании SqueekОбщайся с теми, кто рядом в своём iPhone

Привет, Хабр!
Вы возможно слышали про конференцию под названием South by Southwest (SXSW), которая проходит ежегодно в США. На ней в свое время анонсировались foursquare и twitter. В этом году технологическая часть SXSW запомнилась взрывом стартапов мобильных приложений, реализующих групповое текстовое общение: GroupMe, Youbongo, Beluga и прочие.
Так получилось, что мы примерно в то же время начали разрабатывать своё iPhone приложение, позволяющее общаться с незнакомцами, которые находятся поблизости. Теперь мы понимаем, что идеи и впрямь витают в воздухе :)
Сегодня мы впервые публично анонсируем наше приложение здесь — и просим вас оценить то, что мы сделали, прокомментировать идею и помочь советом. Нам очень нужно и важно ваше мнение — хотим догнать и перегнать американские стартапы!

Блог компании IntelХочу всё знать

   Сегодня, с 14:00 до 16:00 по московскому времени, состоится онлайн-чат с компанией Intel, где в прямом эфире можно будет задать вопросы экспертам и узнать больше о средствах безопасности 2-го поколения процессоров Intel® Core™ vPro™.

Зайти на огонёк

Чтобы не забыть вопрос, можете написать его в комментариях.

Блог компании IntelЧат с экспертами Intel

Приглашаем Вас принять участие в чате Intel в реальном времени.

image

Присоединиться к чату

Чат сделан на Flash и загружается некоторое время. Также, он может резаться AdBlock

Пообщайтесь с экспертами Intel по серверам и узнайте об экономии энергии, виртуализации и сокращении затрат.

Серверы с процессорами Intel® Xeon® предлагают повышенную гибкость и надежность, а также сниженную совокупную стоимость владения, обеспечивая аппаратную базу в соответствии с вашими потребностями в виртуализации и энергосбережении.

Не стесняйтесь, задавайте вопросы. Эксперты постараются дать хороший развёрнутый ответ.

UPD: Чат был завершён в 16-20. Если у кого-то остались незаданные вопросы, спрашивайте прямо в комментариях, мы передадим специалистам и в ближайшее время дадим Вам ответ. Или же — задавайте вопросы в наш твиттер @IntelRussia

Персональные блоги А так уж ли велик Chatroulette?

На протяжении 3х месяцев на Хабре публикуются заметки об уникальном сервисе видео-чата, созданном 17-ти летним парнем из Москвы. Обсуждалось многое: мог ли школьник создать такой сервис, не PR-ход ли это.

Я тоже решил посмотреть, что это за сайт. Признаться честно, затягивает: первый раз с друзьями просидели пару часов. Но во время первого посещения уже закрались в душу первые сомнения. Везде писали про миллионы пользователей, а также то, что около 20 тыс. человек постоянно он-лайн. Нам же частенько попадались некоторые собеседники повторно. Один раз удалось поймать в качестве оппонентов самих себя!

Вот эти все факты и подвигли меня на мини-исследования. Час назад я подключил веб-камеру и окунулся в мир Chatroulette. Скажу сразу, что исследование проводилось в 18.00 по Москве, в Нью-Йорке в это время 10 утра (говорят, что большинство пользователей из США). Конечно, это могло сказать на результатах, но чтобы настолько...

Было совершено 100 контактов, из них 21 собеседника я видел как минимум дважды. Даже без подсчета вероятности повторной встречи, вывод очевиден: при 20 тыс. пользователей он-лайн это крайне маловероятно. Версия о том, что большинство в момент моего поиска уже болтало друг с другом отпадает, т.к. публиковалась информация о том, что на сайте средний контакт длится 9 секунд. Я не знаю, разделяются ли пользователи на группы, показываю ли одному пользователю определенный набор собеседников.

Я хочу сказать, что Chatroulette — это просто очередной мыльный пузырь, раздутый прессой за счет прецедента с юным возрастом создателя.