ВИДЕОЧАТ C НУЛЯ НА React & WebRTC + WebSockets. Аналог Zoom, Skype, Google Meet ЗА ЧАС 2021

  Рет қаралды 44,880

wise.js 

wise.js 

Күн бұрын

Пишем многопользовательский видеочат на React. Аналог Zoom, Skype, Google. И разберемся как работает стандарт WebRTC.
💻 Код готового приложения: github.com/mak...
❗️В тот код, который вы увидите в видеоуроке, я добавил еще 1 коммит с отпиской от событий и дополнительными проверками: github.com/mak...
🟢 Live: cb-clone.herok...
✔️Если хочешь изучать программирование со мной, не забудь подписаться :)
/ @wisejs
✔️Мой телеграм канал: t.me/joinchat/...
Подписывайтесь на мой канал, следите за новыми полезными роликами, пишите комментарии и приятного просмотра!
#react #webrtc #видеочат

Пікірлер: 121
@ВладимирГоворов-о3г
@ВладимирГоворов-о3г 9 ай бұрын
Не встречал еще такого наглядного объяснения любой темы с помощью обычной консоли браузера. Но оказалось, что благодаря такой подачи схватываешь на лету все. А то, как реализовать в коде - дело каждого, в пределах разумного, конечно) В общем, спасибо. Продвижения вам)🔥
@romanlamer181
@romanlamer181 3 жыл бұрын
Очень познавательное и крутое видео!!!100 из 10; Таймкоды: 0:56 - Что такое WebRTC,и как создать p2p соединение; 5:09 - Устанавливаем прямое соединеие без сервера; 10:34 - Пишем код приложения; 20:38 - Actions; 30:00 - Пример создания комнат; 32:23 - Пишем хуки; 37:53 - Захват медиа; 44:30 - Пример захвата медиа; 59:57 - Тестим наш видеочат; 1:01:00 - Добавляем стили; 1:05:50 - Наслаждаемся выполненой работой;
@ФилиппТурбанов
@ФилиппТурбанов 8 ай бұрын
Парень, гигантское тебе спасибище, ты просто лучший! Дай Бог тебе здоровья и процветания твоему каналу 🙂
@nilsen1879
@nilsen1879 3 жыл бұрын
Крутой контент, спасибо! Да и вообще на канале нетривиальные todo list, это круто
@wisejs
@wisejs 3 жыл бұрын
Спасибо, приятно слышать :)
@Luke-vd8es
@Luke-vd8es 5 ай бұрын
Спасибо, за этот ролик!! Все максимально понятно и наглядно! После просмотра наконец-то понял как это работает WebRTC и смог реализовать видеозвонки в своем курсовом проекте.
@xtapofficial6732
@xtapofficial6732 2 жыл бұрын
Всем привет. Кто смотрит это видео в конце 2021 года - в новой версии вместо Switch нужно прописывать Routes.
@detroitbecomepixel3110
@detroitbecomepixel3110 2 жыл бұрын
А вместо useHistory - useNavigate
@АлинаЧередниченко-п9ъ
@АлинаЧередниченко-п9ъ 3 жыл бұрын
Давно хотела написать видеочат. Спасибо 😉
@вчераФикусПопилус
@вчераФикусПопилус 3 жыл бұрын
и? написала?
@x4r7
@x4r7 3 жыл бұрын
@@вчераФикусПопилус застряла на моменте установки Nodejs
@вчераФикусПопилус
@вчераФикусПопилус 3 жыл бұрын
@@x4r7 а ты откуда знаешь?)
@АнатолийГорбов-о1ь
@АнатолийГорбов-о1ь 5 ай бұрын
Это крутой контент! Спасибо!! Очень подробно и понятно!! Ещё раз спасибо, продолжай в том же духе))
@alexs7931
@alexs7931 11 ай бұрын
Первое видео где подробно продемонстрирован код + процесс конекта пиров, я наконец смог увидеть сериализованеую строку подключения offer/answer , до этого просто гадал как это конектится.
@kiwi9492
@kiwi9492 3 жыл бұрын
Лучший туториал, что я встречала по этой теме, для тех, кому нужна быстрая реализация и общее понимание. Мне для диплома больше и не нужно, но для работы я бы хотела узнать подкапотье
@wisejs
@wisejs 3 жыл бұрын
спасибо, приятно слышать! в скором времени будет больше подобного контента)
@romandeveloper7720
@romandeveloper7720 Жыл бұрын
@@wisejs, ты большой молодец!
@beamway317
@beamway317 11 ай бұрын
Лучше использовать нативный js
@melitopol_Russia
@melitopol_Russia 8 ай бұрын
​@@beamway317лучше не использовать нативный там, где это займёт намного больше времени, нежели с использованием библиотеки или фреймворка)
@alexpresley8002
@alexpresley8002 Жыл бұрын
Мен, спасибо тебе! Реально круто разложил все по шагам. По итогу действительно получается видео-чат, который может работать как Zoom.
@suslikest3708
@suslikest3708 3 жыл бұрын
Интересная тема и подана не на 10 часов это лайк!
@МихаилТесля-б4д
@МихаилТесля-б4д 2 жыл бұрын
Если кому интересно, чтобы пофиксить баг с рендером при подключении множества клиентов к комнате, стоит сделать отдельный компонент для видео, куда нужно прокинуть функцию, которая бы добавляла в useEffect srcObject к видео, подход предложенный автором с useStateWithCallback не всегда срабатывает
@andranikhakobkekhvyan868
@andranikhakobkekhvyan868 2 жыл бұрын
Какая у вас была проблема?
@ՍերինեԲաղդասարյան
@ՍերինեԲաղդասարյան 14 күн бұрын
Спасибо большое за видео. Вместо client2 может быть сервер?
@yourtranquility667
@yourtranquility667 3 жыл бұрын
Нереально крутой контент, не только актуальный, но и качественный. Спасибо!)
@wisejs
@wisejs 3 жыл бұрын
спасибо, что оценили!)
@mprowebuz-zamonaviyvasifat7850
@mprowebuz-zamonaviyvasifat7850 2 жыл бұрын
Доброго времени суток только что начал смотреть и сразу лайкнул и подписался удачи
@ОксанаЧередниченко-ю4э
@ОксанаЧередниченко-ю4э 3 жыл бұрын
Очень всё доступно.Спасибо
@dimamir1138
@dimamir1138 3 жыл бұрын
Очень интересно и познавательно. Тут и теория и практика в и класная подача. Побольше бы таких видео!
@frostichekk
@frostichekk 6 ай бұрын
Даже в 2024 году этот гайд еще актуален, спасибо огромное! Но у меня проблема, устройства которые не имеют камеры/микрофона не могут видеть других участников. Как сделать чтобы даже если у пользователя отсутствует камера/микрофон он все равно видел других участников?
@aniiiinii
@aniiiinii 5 күн бұрын
видео было очень интересным но одного не понял я и это как запустить этого программу через git hub если сможете можете сделать отдельную видео сделать для этого! спасибо за внимание!
@vana__f7570
@vana__f7570 3 жыл бұрын
Ты самый крутой. Тебя обязательно благословят боги. Ты станешь круче чем IT-kamasutra
@SenomSnK
@SenomSnK 3 жыл бұрын
Спасибо большое за видео, такого контента очень не хватает, продолжайте в том же духе!
@wisejs
@wisejs 3 жыл бұрын
спасибо за поддержку!)
@КириллПетров-ш3н3к
@КириллПетров-ш3н3к 3 жыл бұрын
Великолепно, отличные приложения. Спасибо за контент и знания!
@ArtemSopun
@ArtemSopun 6 ай бұрын
просто вау! очень крутое видео!
@alexanderolshansky2411
@alexanderolshansky2411 3 жыл бұрын
Спасибо большое. Отличная работа!
@wisejs
@wisejs 3 жыл бұрын
Спасибо за ваш отзыв!
@RainbowBrilliance
@RainbowBrilliance 3 жыл бұрын
Спасибо за труд.
@wisejs
@wisejs 3 жыл бұрын
спасибо, что смотрите!
@sergiistryzg9699
@sergiistryzg9699 3 жыл бұрын
Спасибо) Для первого знакомства самое то) Если что писать --save не обязательно ибо по умолчанию он это делает, это если в девДепенденсис хочешь засунуть то там уже придется писать --save-dev
@JohnDoe-p1y
@JohnDoe-p1y 2 жыл бұрын
-D тогда так уже чтоб еще короче
@aleksandrmatyka3118
@aleksandrmatyka3118 3 жыл бұрын
Ты лучший, отличный контент
@gamerecords_site
@gamerecords_site 2 жыл бұрын
Классное видео, вопрос, можно ли сделать, чтобы подключаемый не транслировал свою камеру, а просматривал видео к кому подключается?
@melitopol_Russia
@melitopol_Russia 8 ай бұрын
ну да, при подключении устанавливать значение false в настройках девайса камеры, либо просто пользоваться браузерной фичей
@mikhailreznichenko8035
@mikhailreznichenko8035 Жыл бұрын
Спасибо за ролик!
@akezhanrakishev9304
@akezhanrakishev9304 3 жыл бұрын
Классный урок! Но код с Github репозитория не работает. У меня React сервер и клиент запускается, но соединение не устанавливается и list комнат тоже не отображается. Можете пожалуйста сказать в чем может быть ошибка?
@wisejs
@wisejs 3 жыл бұрын
Верно, там конфиг клиента настроен на хероку. В файле: /src/socket/index.js Нужно изменить: const socket = io('/', options); на const socket = io('localhost:3001', options);
@akezhanrakishev9304
@akezhanrakishev9304 3 жыл бұрын
@@wisejs Большое спасибо!
@jetmix7097
@jetmix7097 2 жыл бұрын
@@wisejs Подскажите, пожалуйста, что нужно поменять чтобы приложение располагалась не в корне, а например в папке /chat/ ?
@maksym7094
@maksym7094 2 жыл бұрын
а есть еще камеры с меньшим разрешением. ставите в getUserMedia свойчтво video в true
@me4anika
@me4anika 3 жыл бұрын
хороший туториал, правда нифига не понятно, но спасибо
@wisejs
@wisejs 3 жыл бұрын
спасибо! а что именно не понятно?)
@romandeveloper7720
@romandeveloper7720 Жыл бұрын
Привет. А как сделать демонстрацию экрана в браузере?
@danissimo757
@danissimo757 Жыл бұрын
в каком текстовом редакторе ты работал?
@sengokusky1515
@sengokusky1515 3 жыл бұрын
ну ты красава !
@maxim7603
@maxim7603 3 жыл бұрын
Спасибо, годное видео
@wisejs
@wisejs 3 жыл бұрын
спасибо, дальше больше)
@vladosononame6376
@vladosononame6376 3 жыл бұрын
Очень круто, спасибо за информацию
@wisejs
@wisejs 3 жыл бұрын
Спасибо, круто что понравилось!
@vladosononame6376
@vladosononame6376 3 жыл бұрын
@@wisejs попытался подключиться от браузера к браузеру заработало, раздаю интернет с телефона, попробовал с другом подключиться с другого города обменялись токенами но не получилось подключиться) что может быть? изза того что у меня не 4g?
@wisejs
@wisejs 3 жыл бұрын
@@vladosononame6376 Скорее всего да. Через 3g невозможно установить p2p соединение. Нужен дополнительно сервер, который будет проксировать трафик.
@vladosononame6376
@vladosononame6376 3 жыл бұрын
Wisejs Frontend это видео - лучшее что я видел по вебу на ютубе, ты настоящий молодец как ты собрал всю эту информацию и переварил и выдал в видосе я не понимаю) это настоящий тяжелый труд который никто не замечает
@studentkais
@studentkais Жыл бұрын
Ребят, Я хочу быть уверенным, чтобы все это работало, нужно ведь сервер, верно? Который надо покупать и каждый месяц оплачивать даже если сайт совсем не большой, правильно? Нельзя ли на локалке все это развернуть? Или тут все по-другому надо делать?
@duoduoo6732
@duoduoo6732 3 ай бұрын
пир ту пир будет работать если у пиров нет белых адресов?
@GamerOneStrike
@GamerOneStrike 2 жыл бұрын
Какой командой деплоится в хероку? У меня npm run start на локалке открывает 3001 порт, а на хероку вообще ничего, насколько я понимаю прослушивается другой порт.
@romanmelnichenko1365
@romanmelnichenko1365 3 жыл бұрын
Спасибо за ваш труд!) Первый пример 5:00-10:00 работает как-то неправильно: из хрома в ФФ сообщения не приходят, а наооборот все работает. Ошибок нету. Два раза повторил по видео - результат один и тот же. Я один с такой проблемой?
@wisejs
@wisejs 3 жыл бұрын
Спасибо за коммент! Думаю что вы упускаете какой-то момент. Проверял неоднократно в разных браузерах, все было ок.
@xxcrypt234
@xxcrypt234 Жыл бұрын
Спасибо!
@ЭминШахабов
@ЭминШахабов 10 ай бұрын
привет. не запускается сервер, с чем может быть связано? выдает ошибку в терминале: Error: Cannot find module './src/socket/actions'
@cryptoclubchannel
@cryptoclubchannel Жыл бұрын
Можешь помочь доработать чат? Есть некоторые нюансы, которые пока не могу поправить сам
@hpc832
@hpc832 2 жыл бұрын
Здравствуйте, подскажите пожалуйста, что за среда разработки?
@nickolya00
@nickolya00 2 жыл бұрын
PyCharm вроде
@corvus278
@corvus278 2 жыл бұрын
5:00 - 10:00 -- не работает в firefox, однако между браузерами на хромиуме норм. Если погуглить, вроде объясняется в чём дело, но я не очень понял)
@ЕвгенийЖ-н6м
@ЕвгенийЖ-н6м 2 жыл бұрын
Всем привет, если делать то, что автор в начале видео в двух браузерах почему-то не срабатывает обработчик onmessage, в чем может быть причина? chanel.send("text") не работает , как исправить? Кто пробывал ?
@elenap.7341
@elenap.7341 5 ай бұрын
почему работает только на Локал хосте? может это я дурак...
@NeoJohnSmit
@NeoJohnSmit 2 жыл бұрын
Спасибо))
@karmahchannel
@karmahchannel 3 жыл бұрын
Как получить экран рабочего стола у другого клиента?
@ДмитрийМельников-ъ3в
@ДмитрийМельников-ъ3в 2 жыл бұрын
Спасибо! Автор подскажи, при JOIN к созданной комнате поймал ошибку 'Error getting userMedia: DOMException: Could not start video source', код из хуков копипастил) если подключаться с одного браузера работает, а с разных вот падает) не встречал кто ?
@wisejs
@wisejs 2 жыл бұрын
Не встречал. Попробуй моё приложение поднять и посмотреть воспроизводится ли ошибка.
@andranikhakobkekhvyan868
@andranikhakobkekhvyan868 2 жыл бұрын
сделал все как у вас плюс подключил turn сервер но иногда у некоторых бывает что не слышно и не видно, например подключены 4 человека и одного не слышат и не видят, проверил и по вашей ссылке у вас тоже есть такая проблема. Можете помочь? Если что можем созвонится. Заранее спасибо
@uggarshorts
@uggarshorts 2 жыл бұрын
Здравствуйте хорошее видео, но застрял на моменте с терминалом, хочу написать какой-то символ, а оно не дает. Пишет Все права защищены. Помоги пожалуйста...
@wisejs
@wisejs 2 жыл бұрын
Выполняйте команды под sudo или с Правами Администратора на Windows.
@svetlanasmirnova5623
@svetlanasmirnova5623 2 жыл бұрын
Спасибо за видео! Присоединяюсь к вопросу Yusenka: при команде npx nodemon server.js запускается не наш сервер через порт 3001, а дефолтный сервер Реакта через 3000. Почему так происходит и как это исправить?
@wisejs
@wisejs 2 жыл бұрын
Запускайте Команды из package.json, а не на прямую. И server по дефолту запускается на 3001.
@kihawi1627
@kihawi1627 5 ай бұрын
как я могу получить https сертификат и использовать его?
@JohnDoe-ru9yp
@JohnDoe-ru9yp 2 жыл бұрын
Как убрать эхо если с двух устройств говорят по громкой связи и стрим идёт немного с задержкой?
@pavel2702
@pavel2702 2 жыл бұрын
Ребят если есть какой-то проект, где есть кнопка общения по видеосвязи, скажите как встроить данный проект, по нажатию на эту кнопку, есть вариант по роутерам, но как ссылаться на весь проект?
@jetmix7097
@jetmix7097 2 жыл бұрын
Подскажите, пожалуйста, что нужно поменять чтобы приложение располагалась не в корне, а например в папке /chat/ ?
@wisejs
@wisejs 2 жыл бұрын
В роутер path везде добавить префикс /chat
@BbKk224
@BbKk224 3 жыл бұрын
Видео то годное, но вот на телефоне подсоединится не получается. Странно что оно вообще все работало два месяца назад без HTTPS
@wisejs
@wisejs 3 жыл бұрын
Проверял на iphone, все работало норм. Что и показал в превьюшке. Да и сейчас все ок.
@BbKk224
@BbKk224 3 жыл бұрын
@@wisejs на Андроиде не работает к сожалению
@wisejs
@wisejs 3 жыл бұрын
@@BbKk224 В Хроме открываете?
@BbKk224
@BbKk224 3 жыл бұрын
@@wisejs Да
@MRratatyq
@MRratatyq 2 жыл бұрын
Я что то не совсем понял как соединить 3-его человека....
@ТвойДруг-н7и
@ТвойДруг-н7и 2 жыл бұрын
А как сделать не видео чат, голосовое p2p соединение?
@muxa258
@muxa258 3 жыл бұрын
У меня тут вопросик? А как сделать чтоб это все работало через и на другом домене я про доступ к камере и микрофону?
@wisejs
@wisejs 3 жыл бұрын
В айфрейме нужно указать атрибут: allow="display-capture".
@dankryt
@dankryt 13 күн бұрын
Кто тут после бана дискорда?🤭
@ОлександрТищенко-в3щ
@ОлександрТищенко-в3щ 3 жыл бұрын
ні в кого CORS не блокував роботу додатку?
@sergeinosachyev5320
@sergeinosachyev5320 2 жыл бұрын
да да)) это же самое малое что можно показать, есть куча опций которые должны быть реализованы
@wisejs
@wisejs 2 жыл бұрын
Суть видеочата в видеосвязи. Остальное не так важно.
@arrurp
@arrurp 2 жыл бұрын
Спасибо за видео. Запускаю сервер и клиент коммандами из packages.json, в хроме в 1й вкладке создаю комнату. Во второй хочу посмотреть ее айди в списке, но она не появляется. Может у кого-то было подобное?
@arrurp
@arrurp 2 жыл бұрын
Решилось так: const socket = io(':3001/', options);
@lynnpelly2277
@lynnpelly2277 3 жыл бұрын
In app please
@NeoJohnSmit
@NeoJohnSmit 2 жыл бұрын
Вау
@lisofsky8151
@lisofsky8151 2 жыл бұрын
синтаксис устарел роутер реакт
@bad4iz
@bad4iz Жыл бұрын
хероку сервер сдох?
@КнязьВасилий-п8ж
@КнязьВасилий-п8ж 3 жыл бұрын
Спасибо!
@wisejs
@wisejs 3 жыл бұрын
Спасибо за коммент!
Will A Basketball Boat Hold My Weight?
00:30
MrBeast
Рет қаралды 103 МЛН
НИКИТА ПОДСТАВИЛ ДЖОНИ 😡
01:00
HOOOTDOGS
Рет қаралды 2,8 МЛН
Миллионер | 2 - серия
16:04
Million Show
Рет қаралды 1,6 МЛН
😜 #aminkavitaminka #aminokka #аминкавитаминка
00:14
Аминка Витаминка
Рет қаралды 1,8 МЛН
Créer plusieurs applications  django
23:04
Codons Ensemble
Рет қаралды 117
WebRTC-шная тема | Технострим
19:27
VK Team
Рет қаралды 13 М.
Will A Basketball Boat Hold My Weight?
00:30
MrBeast
Рет қаралды 103 МЛН