Pull to refresh

Создание видеочата с помощью Node.js + Socket.io + WebRTC

Reading time8 min
Views29K

Сегодня, специально к старту нового потока по веб-разработке, поделимся с вами туториалом, из которого вы узнаете, как создать видеочат с помощью JavaScript и NodeJS. Также вы научитесь использовать PeerJS, WebRTC и Socket.io.

Читать далее
Total votes 8: ↑5 and ↓3+2
Comments10

Flutter + Socket.io — Обмен информацией в режиме реального времени

Reading time7 min
Views15K

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments4

Создаем чат на Node.js и Socket.IO

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

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

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

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

Структура серверной части такова: сервер принимает сообщение, если это команда — выполняет определенные действия, если просто сообщение — рассылает всем остальным участникам.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments75

HowTo: Как подружить Django с WebSocket (socket.io, sockjs)

Reading time10 min
Views33K
Version: 0.2

Возникла у меня потребность атомарного обновления в реальном времени страницы у некоторого количества пользователей в зависимости от действий других пользователей (не гербалайф чат). Понятное дело, можно всё выкинуть в помойку и, по-молодецки, запилить с нуля на tornado/twisted.web, но явно не самый продуктивный путь (да и я не мо́лодец ни разу) когда всё что надо — уже работает на Django и нужно всего-то чуть-чуть… Естественным образом, по сути своей, сюда просится WebSocket. И всё бы ничего но Django WSGI приложение, а этот стандарт не предполагает таких выкрутасов даже близко (пока). Гугления интернетов навели, в очередной раз, на труд известного python-гуру kmike (это без сарказма, т.к. его работы выручали меня лично уже не однократно, за что нижайший ему поклон!).

Итак если вы хотите скрестить ваш Django проект с websocket посредством js библиотеки socket.io или sockjs — вилькоммен!
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments22

Удаленный вызов процедур в Node.js с использованием Now.js

Reading time4 min
Views5.5K

Введение


Для Node.js есть отличная библиотека Socket.io для кроссбраузерного использования вебсокетов.
Но для двухстороннего взаимодействия сервера и клиента приходится использовать модель сообщений.
С помощью библиотеки Now.js есть возможность прозрачного вызова функций клиента со стороны сервера и наоборот.
Читать дальше →
Total votes 32: ↑23 and ↓9+14
Comments10

Пишем онлайн игру на NodeJS, Express и Socket.IO

Reading time18 min
Views43K

Привет %habraname%!





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


Мало кто сегодня может сказать что не знает о NodeJS, последнее время о нём много говорят и пишут.
Я свой путь ознакомления с NodeJS начал полгода назад, тогда для меня это была просто интересное и новое, я и подумать не мог что уже через полгода это станет моим основным инструментом для разработки.

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

Но сейчас я чувствую в себе силы чтобы уже написать полноценный обучающий и не унылый материал от новичка до реального работающего приложения. Это будет не просто приложение, а онлайн игра с использованием самых популярных инструментов Express и Socket.IO, да-да, мультиплеер, который сможет сделать любой средне-статистический js разработчик.

О том, что такое Express и Socket.IO уже писали много где, поэтому описывать ещё раз я не буду, уделив больше внимания процессу разработки.

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

И так, решено! Начинаю делать крестики-нолики.
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments56

Пишем онлайн игру часть 2 или работа над ошибками

Reading time7 min
Views7.2K

Приветствую %habrname%!




Во вчерашней статье для меня в общем-то было ожидаемо, что большинству не будет интереса к nodejs, многие посмотрят только демо. Но к сожалению я не учёл, что и оценивать в статье будут именно игру! Хоть мне было и обидно потратив столько времени на написание статьи (а что самое главное игра писалась именно для статьи, а не наоборот), я сегодня решил написать продолжение.

Ну что же! Проведём работу над ошибками и сделаем работающую игру со всем о чём просили, но при этом не будем отклонятся от темы блога и рассмотрим все технические моменты с которыми столкнулись при тесте игры.
Читать дальше →
Total votes 32: ↑24 and ↓8+16
Comments13

TornadIO2 = Tornado + Socket.IO

Reading time5 min
Views14K

Что такое Socket.IO?


Это библиотека предназначенная для организации постоянного соединения между сервером и браузером.

Главное преимущество библиотеки: она автоматически подстраивается под возможности браузера и использует наиболее эффективный транспортный протокол из поддерживаемых.

Браузер умеет веб сокеты? Отлично, будем использовать их. Браузер умеет AJAX? Будем использовать long polling. Это древний Internet Explorer? Будем использовать html file object. Ну и так далее.

О socket.io уже писали на Хабре. «Родной» сервер Socket.IO написан на node.js.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments13

Исследование производительности сервера SockJS

Reading time4 min
Views14K
Доброе время суток!

Так уж сложилось, что я занимаюсь всякими разнообразными push технологиями с использованием Tornado. Чуть ранее описывал Tornadio2, серверную реализацию протокола socket.io поверх Tornado.

Теперь хочу представить похожий проект — sockjs-tornado.

Для тех кому не очень интересно, есть другая полезная информация: сравнительное нагрузочное тестирование PyPy 1.7 против CPython 2.6.6, sockjs-node и socket.io (оба на node.js 0.6.5). Все под катом :-)
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments13

Приватный чат на node.js — что может быть проще?

Reading time3 min
Views22K
Привет, друзья!

Дело было вечером, делать было нечего… Разбирая пример чата в Socket.IO, заинтересовала возможности без особых ухищрений сделать чат приватным. Идея не новая, и достаточна простая — выбираешь свой пол и возраст, указываешь желаемый пол и возраст собеседника, и, поехали! Своего рода рулетка.
Читать дальше →
Total votes 18: ↑14 and ↓4+10
Comments21

Отложенная обработка массива

Reading time4 min
Views8.6K
Однажды, при разработке сложного приложения на JavaScript-е возникла непреодолимая проблема — большой массив в Internet Explorer (далее IE). Так как я изначально проверял работу в Chrome, то не замечал каких-либо проблем при использовании массивов. Скажу больше — вложенные массивы не вызывали чувства страха. Chrome легко справлялся с трудными задачами. Однако IE, в очень жёсткой форме, указал на все мои огрехи и недостатки кода, особенно на обработку Больших массивов.
Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments14

PuperGrep — логи в браузере в реальном времени

Reading time2 min
Views13K
Вы не любите смотреть логи в консоли или вам не позволяют их любить, а следить за ходом дел как-то нужно?

PuperGrep — просмотрщик логов в браузере, который работает как tail -F, grep и подсвечивает самое интересное в вашем браузере. Или даже на вашем android, iPhone или iPad.

Скриншот PuperGrep

Возможности и демо
Total votes 82: ↑76 and ↓6+70
Comments29

Моё видение дорожных событий

Reading time3 min
Views15K
Являясь пешеходом, я всегда с интересом смотрел на терзания коллег по поводу того, как, когда и по какому маршруту ехать домой на их личном автомобиле — ведь информация с Яндекс.Пробки не всегда отражает действительность. И тут мне показалась интересной возможность немного по-другому посмотреть на то, что происходит на дорогах города. Что из этого получилось — можно увидеть ниже.


Читать дальше →
Total votes 15: ↑10 and ↓5+5
Comments12

Авторизация и аутентификация на NodeJs и Socket.io и проблемы вокруг

Reading time5 min
Views12K

На текущий момент я работаю в компании Мегафон тим лидом фронта. С начала этого года мы в команде Мегафона разрабатываем собственную платформу Интернета вещей. И так как, в таком процессе нагрузка на бек-энд разработчиков стала колоссальная, а фронт не так активно задействован, внутри отдела было принято решение отдать всю веб-часть в руки моей команды. Очевидно, что мы взяли NodeJs, и занялись построением серверной архитектуры и тд.

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

Читать далее
Total votes 8: ↑6 and ↓2+4
Comments5

Как создать приложение для чата в реальном времени с помощью React, Node, Socket.io и HarperDB

Reading time27 min
Views5.5K

Статья посвящена созданию приложения для чата в реальном времени с чат-комнатами, с использованием Socket.io и HarperDB. Научимся на практике создавать полнофункциональные приложения, в которых бэкэнд может взаимодействовать с фронтендом в реальном времени. Руководство будет особенно полезно для начинающих веб-разработчиков.

Читать далее
Total votes 13: ↑12 and ↓1+11
Comments0

TermKit: новая концепция консоли с графическим выводом

Reading time2 min
Views6K
Командная оболочка (консоль) — пожалуй, самый архаичный элемент Unix, который остаётся почти в неизменном виде уже тридцать лет. Мы любим его, но кому-то кажется странным сидеть у монитора с миллионами пикселей, ежедневно глядя в консольное окошко образца 70-х годов, когда вся информация на компьютерах была исключительно в текстовом виде.


А что если добавить прямо в консоль отображение графики, видео и других типов данных, а не только текста? Изменить концептуальные принципы работы командной оболочки — это сумасшедшая идея, но ведь никто не запрещает экспериментировать.
Читать дальше →
Total votes 189: ↑154 and ↓35+119
Comments296

Поддержка реверс-проксирования Web Sockets в Nginx

Reading time2 min
Views11K
Если вы используете Socket.IO или Faye с WebSockets, и хотите при этом использовать реверс-прокси с Nginx, то вы встретитесь с проблемой поддержки WebSocket в Nginx. Ее просто нет — WebSocket использует HTTP 1.1, в то же время как Nginx умеет правильно проксировать только HTTP 1.0.

Что делать?


Вы можете попытаться пойти в обход — использовать HAProxy для проксирования tcp соединений, или же скатиться к использованию Long-polling.
Но есть способ реализовать реверсированное проксирование и с NGINX, используя неофициальный патч, реализующий модуль tcp_proxy в nginx, который даст возможность пробрасывать произвольные tcp-соединения (по сути тоже самое, что дает HAProxy).
Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments15

Концепт AngularJS service для именованных соединений socket.io

Reading time5 min
Views13K
Доброго времени суток, друзья!

В процессе работы над одним сервисом, фронтенд которого построен на AngularJS, возникла необходимость общаться с сервером socket.io по разным логическим каналам. При этом было желание обойтись всего одним реальным физическим соединением с сервером и иметь в коде приложения отдельные объекты подключений для каждого канала. Что из этого получилось, можно посмотреть под катом.


Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments4

Игровой сервер за один день на Node.js + Socket.io

Reading time3 min
Views45K
В конце рабочего дня в пятницу, обдумывая текущую задачу, в воспаленном мозгу неожиданно возникла мысль — а не попробовать ли мне написать свой игровой сервер?

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

Но по-видимому, заноза прочно засела в голове, поэтому проснувшись в субботу я принялся творить.
Читать дальше →
Total votes 38: ↑25 and ↓13+12
Comments5

Вышла версия 1.0 библиотеки Socket.IO

Reading time1 min
Views12K
28 мая библиотека для создания приложений реального времени на Node.js Socket.IO доросла до версии 1.0. Socket.IO возникла практически сразу же после появления Node.js и быстро стала одним из самых популярных и востребованных проектов экосистемы Node. Socket.IO реализует коммуникацию сервера и клиента в реальном времени с помощью Web Sockets, а при отсутствии этого API в старых браузерах эмулирует сокеты с помощью других доступных технологий — сокетов Adobe Flash, запросов AJAX или JSONP.
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments5