Подключаем WebSocket (SockJS + Stomp). Spring Boot REST

Поделиться
HTML-код
  • Опубликовано: 28 сен 2018
  • Spring Boot Rest Application: подключаем WebSocket (через библиотеку SockJS) и отправляем сообщения по протоколу Stomp. С использованием данных технологий мы будем асинхронно обновлять данные в браузере клиента без перезагрузки станицы.
    Код из видео:
    github.com/drucoder/sarafan/t...
    Руководство по подключению WebSocket к SprintBoot проекту:
    spring.io/guides/gs/messaging-...
    Can I use: WebSocket:
    caniuse.com/#search=websocket
    Документация по StompJS:
    stomp-js.github.io/stomp-webs...
    Документация по SockJS:
    github.com/sockjs/sockjs-client
    ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
    ➡ Твиттер: / letscodedru
    ➡ Чат в Discord: / discord
    ➡ Группа Вконтакте: letscodedru
    ➡ Канал в Telegram: t.me/letsCode_dru
    ➡ Чат в Telegram: t.me/joinchat/FeiP9xEhqHajfqh...
    ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
    Поддержать проект:
    ➡ Patreon / letscodedru
    ➡ Яндекс.Деньги money.yandex.ru/to/4100145167...
    ➡ PayPal paypal.me/letscodedru
    ➡ Qiwi qiwi.me/letscode
    ➡ WebMoney/BitCoin funding.webmoney.ru/d/drucoder
    ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
    ➡ Ссылка на канал: / @letscodedru
    ➡ Ссылка на Яндекс.Дзен: zen.yandex.ru/media/id/5ac209...

Комментарии • 87

  • @user-sp5ml8gv8i
    @user-sp5ml8gv8i 5 лет назад +16

    Андрей, большое спасибо за все твои видео, отлично объясняешь!

  • @dreamer_vi905
    @dreamer_vi905 Год назад +1

    Видосу уже скоро пять лет, но всё ещё полезный. Спасибо)

  • @nikitaantonenko3287
    @nikitaantonenko3287 4 года назад +5

    Андрей спасибо огромное!!!))) Обожаю ваш канал!!))) Всегда очень интересные темы!!!)))))

  • @D.P._
    @D.P._ 4 года назад +1

    Спасибо! Как всегда годные уроки. всегда есть что-то новое. иногда понятное иногда совсем нет, но всегда интересно

  • @IvanIvanov-oi5nx
    @IvanIvanov-oi5nx 5 лет назад +4

    Круть крутяшная!!!!! Респект, вот чего хотелось-то попробовать))) С нетерпением жду продолжения!!!

  • @user-iu6yz6ck6h
    @user-iu6yz6ck6h 5 лет назад +5

    Вообще супер видео! Спасибо.

  • @artsbrand
    @artsbrand 5 лет назад +2

    крутая технология!!! а мы поллинги и пушинги юзали ) спасибо!

  • @VASY1PUPKIN2
    @VASY1PUPKIN2 5 лет назад +2

    Аффтар я тебя люблю в хорошем смысле этого слова!!

  • @D.P._
    @D.P._ 5 лет назад +2

    Спасибо! Отличный и лаконичный материал!

  • @user-jm3lb2fd6s
    @user-jm3lb2fd6s 5 лет назад +5

    Спасибо за отличное видео!

  • @mohentohen7714
    @mohentohen7714 4 месяца назад +1

    На одном дыхании

  • @user-tj7kc3rd4j
    @user-tj7kc3rd4j 5 лет назад +4

    Ну как всегда лойс)

  • @maksimdidukh6114
    @maksimdidukh6114 4 года назад +1

    От души душевно в душу (ↄ).

  • @user-wj7if5xq6l
    @user-wj7if5xq6l 5 лет назад +2

    Большое спасибо и и жирный лайк за видео! По образу и подобию сделал удаление сообщений, всё работает

    • @user-rv4sh5nc6x
      @user-rv4sh5nc6x 4 года назад

      скинь код, как удаление реализовал, пожалуйста

  • @YuretsUA
    @YuretsUA 4 года назад +1

    Ни один урок не обходится без последствий, если просто выполнить особо не вдумываясь то ничего не отложится. Я вот попытался разобраться, застрял на 2 часа, никак не мог понять что происходить в handlers, все виной тому, что в java не сталкивался с функциональным программированием, и только потом понял что в handlers ложатся не объекты, а функции которым в последствии передаются сообщения из сервера, зачем такая примудрость пока не разобрался (в будущем думаю пойму) но блин в мозгу отложилось надежно. В очередной раз спасибо за видео, в каждом новом уроке новая технология, которая заставляет разбираться и развиваться. Удачи автору.

    • @user-og4pz6eo1u
      @user-og4pz6eo1u 4 года назад

      Спасибо тебе, добрый человек. Тоже голову ломал над этим.

  • @Elvolvers
    @Elvolvers 4 года назад

    Спасибо! Кстати для поиска различий между файлами можно использовать Araxis Merge, например.

  • @vjotov
    @vjotov 5 лет назад +6

    14:00 - в каком моменте и как мы настроили mapping путей?
    16:50 - можно ролик с бэкстейджа - как вычислили что именно там ошибка?
    у меня опечатка получилась - в MessageController вместо аннотация @MessageMapping("/changeMessage") была changeMassage.
    есть вариянт заставить спринг писать в консоль, когда кто то не туда стучится? как при классическим REST когда не найден mapping?

  • @victormog
    @victormog 5 лет назад +3

    Респект!

  • @vladvlad8839
    @vladvlad8839 4 года назад +1

    Супер круто!

  • @AnnaSmirnova1
    @AnnaSmirnova1 4 года назад +1

    Аладунь!
    Спасибо огромное!!!!

    • @letsCodeDru
      @letsCodeDru  4 года назад

      Сразу видно, кто стримы не пропускает XD

  • @antonfedoruk1037
    @antonfedoruk1037 3 года назад +2

    Ахах, досматривайте видео до последней секунды! Оно того стоит :)

  • @bek2074
    @bek2074 5 лет назад +19

    Чтобы пройти это урок нужно разобраться в уроке "Настраиваем Webpack", который ссылается на урок "Webpack - сборщик web приложений", который ссылается на урок "Node.js: NPM - пакетный менеджер"...

    • @davronsherbaev9133
      @davronsherbaev9133 4 года назад +1

      Ну, как бы это нормально)

    • @fedorivanhoe3266
      @fedorivanhoe3266 2 года назад

      А у меня и так всё работает, мне вообще gulp больше нравится

  • @user-fq9hu1sz7l
    @user-fq9hu1sz7l 5 лет назад +1

    Вопрос по уроку Bean Validation:
    Если по одному полю срабатывает сразу два условия валидации, как в этом случае получить список ошибок?
    При использовании коллекции Map выскакивает ошибка, т.к. появляется второй дублирующий ключ.

  • @noyklgd4403
    @noyklgd4403 5 лет назад +4

    Автору очередные плюсы к карме)

  • @psvm_channel
    @psvm_channel Год назад

    Подскажите, как проксировать трафик по вебсокет протоколу в спрингбут приложении? У меня на проекте микросервисная архитектура, в качестве входной точки используется спринг бут приложение, которое аутентифицирует запросы с клиента и проксирует их в другие модули. Между браузером и одним из внутренних модулей нужно установить веб сокет соединение. Подскажете какие-нибудь способы?

  • @bassturbatorark
    @bassturbatorark 3 года назад +1

    Удаленные месседжи не пропадают у другого юзера без перезагрузки страницы

  • @user-uq4nd6go9c
    @user-uq4nd6go9c 4 года назад +1

    В конце песня отладчика: "Какого хера, какого хера..." :D

  • @VladShtaiier
    @VladShtaiier Год назад

    Привет, а обязательно что-бы месседж был именно текстом? Нельзя например сделать вместо просто текста какой-то типу пост, в котором есть титулка, тело и тд. Делая тем самым что-то по типу ленты, которую можно скролить

  • @GrishaObrazcovV
    @GrishaObrazcovV 5 лет назад +2

    Когда продолжение будет?

  • @anzheoneanzeone1095
    @anzheoneanzeone1095 4 года назад +2

    Андрей , спасибо! вопрос у меня такой, сколько раз вы это делали и какое время лично вам нужно чтобы изучить и внедрить что -то новое (даже на примере webcoket, security). Дело в том, что я уже неделю не могу сделать ))) вот хочу понять один я такой или нас много, как быть если начальство скажет сделать такое, а тут такие заторы)

    • @letsCodeDru
      @letsCodeDru  4 года назад +3

      Когда учился тоже нихренаж не работало. Сейчас уже опыт есть, могу гораздо быстрее разобраться. Это как с машиной: начинаешь на одной и ездишь еле-еле. А потом, с опытом, пофиг на какой и достаточно хорошо катаешь

  • @dmitrysomsin2117
    @dmitrysomsin2117 4 года назад +1

    Спасибо, но это первое видео в котором я не понял 60% информации)

  • @nikopapchenko3726
    @nikopapchenko3726 3 года назад

    Народ подскажите.
    Все делал как по видео, но не отправляет сообщения в форме пользователя, что может быть?

  • @trygoboi4790
    @trygoboi4790 4 года назад

    Здравствуйте. Может кто нибудь поможет с моим вопросом. Так вот вопрос, как сделать обмен сообщениями по конкретному URL. То есть допустим у меня сайт находится на localhost:8080. И я хочу чтобы мой чат через WebSocket открывался только по URL "localhost:8080/chat". Как это сделать? Пробовал @RequestMapping("/chat"). Все равно все открывается на главной странице localhost:8080. Писал по официальному гайду от Спринга. Тут у автора тоже приложение работает на localhost:9000 без дополнительных слов в URL. Надеюсь понятно задал вопрос, заранее большое спасибо

  • @kajmankaiman4896
    @kajmankaiman4896 3 года назад

    Знает кто, как автор сделал так, чтобы у него на 11:30 в логе сокета выводился именно наш энтити пользователя, а не просто id?

  • @nailsaggitarius4212
    @nailsaggitarius4212 4 года назад

    Зря сделали "по-молодежному" теперь затруднения как собрать ваш проект, если например нужно hibernate, который я собрал по вашему же видео и websocket, который теперь собирается совершенно иначе. Слишком крутой входной порог вы сделали.. Извините, конечно, видео отличные, очень доходчивые.

  • @antihype3450
    @antihype3450 5 лет назад +2

    КАК исправить? send message не реагирует ,делал все как на видео WebSocketSession[1 current WS(1)-HttpStream(0)-HttpPoll(0), 1 total, 0 closed abnormally (0 connect failure, 0 send limit, 0 transport error)], stompSubProtocol[processed CONNECT(1)-CONNECTED(1)-DISCONNECT(0)], stompBrokerRelay[null], inboundChannel[pool size = 8, active threads = 0, queued tasks = 0, completed tasks = 12], outboundChannel[pool size = 1, active threads = 0, queued tasks = 0, completed tasks = 1], sockJsScheduler[pool size = 4, active threads = 1, queued tasks = 3, completed tasks = 14]

    • @abaialihan9274
      @abaialihan9274 4 года назад +1

      я с этой проблемой лежу неделю :( новые сообщения не добавляются, старые не редактируется, работает только удаление
      upd: в MessageController в методе change не правильно написал @MessageMapping("/change") . исправил @MessageMapping("/changeMessage")

    • @trygoboi4790
      @trygoboi4790 4 года назад

      @@abaialihan9274 привет. Пожалуйста. Можешь примерно объяснить как реализовывал удаление? И скажу, при удаление, другой пользователь видит это удаление без перезагрузки или только после перезагрузки?

  • @oskinnick
    @oskinnick 2 года назад

    Автор, Спасибо огромное! Однако вопрос: при отработке кнопки редактирования в базу тупо добавляется новый Message. sout в контроллере @MessageMapping выводит принятый мессадж без Id. При этом, в консоли хрома отправка айдишника таки происходит... В каком месте Может быть ошибка? Мяф)

    • @letsCodeDru
      @letsCodeDru  2 года назад

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

    • @oskinnick
      @oskinnick 2 года назад

      @@letsCodeDru Привет!) В чат заходил, кое-что подсказали) Трабл оказался в итоге связан с @MessageMapping - зараза отказывается конвертить Айди из ДжСона. В результате обошел засаду с помощью гiмна та палок - повытаскивал данные руками из JSONObject %)). Однако если ты не против - можно таки поспилкувацца через личку? (Оч хочется разобраться)

  • @axrorbekkuchkarov4146
    @axrorbekkuchkarov4146 4 года назад

    Здрасвуйте мне надо jwt + websocket, свой укзампл нету? откуда мне искать ? pls help me

    • @letsCodeDru
      @letsCodeDru  4 года назад +1

      Ещё пока нету. В перспективе должен появиться

  • @vladislavosipenkov1412
    @vladislavosipenkov1412 Месяц назад

    А нет видео где stomp но вместо фронта - postman?

  • @andreyguzik2675
    @andreyguzik2675 5 лет назад +4

    Ванну нужно закрывать :)

    • @letsCodeDru
      @letsCodeDru  5 лет назад +1

      Тогда кот начинает туда громко ломиться))

    • @andreyguzik2675
      @andreyguzik2675 5 лет назад

      Со временем отвыкнет ^_^

    • @noyklgd4403
      @noyklgd4403 5 лет назад +2

      связывай его скотчем)

  • @r199971
    @r199971 5 лет назад +2

    Почему не ajax? Что тебе так не нравиться Jquery?)

    • @letsCodeDru
      @letsCodeDru  5 лет назад +2

      Jquery провоцирует плохую архитектуру

    • @vjotov
      @vjotov 5 лет назад

      @@letsCodeDru расскажите как нибудь почему и что с Angular и React хуже чем Vue

    • @letsCodeDru
      @letsCodeDru  5 лет назад +1

      @@vjotov с ними всё так. Просто мне больше Vue нравится. На работе использую React. Нынешний ангуляр (2) использовал еще когда он был в глубокой альфе.

    • @user-yy2be5ep5o
      @user-yy2be5ep5o 5 лет назад

      @@letsCodeDru а что делаете ?

  • @ayrat11
    @ayrat11 3 года назад

    Которое видео уже подряд практически ничего по спрингу - один фронтенд на джаваскрипте. Переименуйте уже тогда уроки в изучение фронта.

  • @D.P._
    @D.P._ 5 лет назад +1

    Спасибо! Отличный и лаконичный материал!

  • @D.P._
    @D.P._ 5 лет назад

    Спасибо! Отличный и лаконичный материал!

  • @D.P._
    @D.P._ 5 лет назад

    Спасибо! Отличный и лаконичный материал!

  • @D.P._
    @D.P._ 5 лет назад

    Спасибо! Отличный и лаконичный материал!

  • @D.P._
    @D.P._ 5 лет назад

    Спасибо! Отличный и лаконичный материал!

  • @D.P._
    @D.P._ 5 лет назад

    Спасибо! Отличный и лаконичный материал!

  • @D.P._
    @D.P._ 5 лет назад

    Спасибо! Отличный и лаконичный материал!