sql >> データベース >  >> NoSQL >> Redis

LaravelにWebソケットを実装したい

    あなたはプッシャーを使用しているので、イベントの使用方法を知っていると思います。

    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に慣れていない場合は、私のgithubproject.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-serverstartを実行し、プロジェクトを開きます。

      が表示されます。
      [20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- 
         App.User.1
      [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
      
    8. 好きなイベントやその他の通知を聞くことができます

    9. これが私のgithubプロジェクトのエコー例です

    postmanを使用して特定のユーザーにメッセージを送信できるように、小さなコードを追加します。メッセージはChromeコンソールから確認できます。詳細については、githubプロジェクトのスクリーンショットをご覧ください



    1. Redis sub/pubおよびphp/nodejs

    2. Redisのネストされた構造の代替案?

    3. Amazonの外部でAmazonElastiСacheRedisに接続できますか?

    4. MongoDBとSpringBootを使用したファイルのアップロードと取得