Redis
 sql >> база данни >  >> NoSQL >> Redis

Искате да внедрите уеб сокети в Laravel

Използвали сте pusher, така че предполагам, че знаете как да използвате event.

Препоръчвам ви laravel-echo-server. Много е лесен за използване, с вграден API.

Ето един свеж пример за laravel-echo проект от нулата. След като настроите проекта.

ще ви трябва predis, ако все още не сте го инсталирали

composer require predis/predis
redis-server /usr/local/etc/redis.conf
  1. изпълнете npm install -g laravel-echo-server
  2. изпълнете laravel-echo-server init
  3. разкоментирайте App\Providers\BroadcastServiceProvider::class в config/app.php
  4. добавете <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script> във вашия app.blade.php
  5. имате нужда от socketio-client, можете да стартирате npm install --save laravel-echo .В случай, че не сте запознати с npm или vue, можете просто да включите този компилиран файл от моя github project.compiledjs
  6. добавете това към app.blade.php

    <script>
    window.Echo = new Echo({
    broadcaster: 'socket.io',
    
    host: '{{url('/').':6001'}}',
    });
    Echo.private(`App.User.{{Auth::id()}}`) // private channel
    .listen('NewMessage', (e) => {
        console.log(e)
    
    });
    
    
    </script>
    
  7. накрая стартирайте laravel-echo-server start и отворете своя проект, ще видите

    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
       App.User.1
    [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
    
  8. можете да слушате всяко събитие, което искате, или други известия

  9. ето моят echo-пример на github проект

добавете малко код, за да можете да използвате пощальон да изпрати съобщение до конкретен потребител. Можете да видите съобщението от конзолата на Chrome. Можете да получите повече подробности от екранните снимки на проекта github



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis като база данни

  2. могат ли няколко клиенти да имат достъп до един и същ списък едновременно, без да бъдат блокирани в Redis?

  3. Редис за изпълнение на конвейер

  4. gke не може да деактивира Transparent Huge Pages... разрешението е отказано

  5. Достъп до променлива в релсова нишка