Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk melaksanakan pelayan WebSockets menggunakan Pelayan Echo Laravel?

Pembangunan Laravel: Bagaimana untuk melaksanakan pelayan WebSockets menggunakan Pelayan Echo Laravel?

WBOY
WBOYasal
2023-06-13 15:08:441515semak imbas

Dengan perkembangan pesat teknologi komunikasi masa nyata, WebSockets telah menjadi pilihan ramai pembangun web, dan rangka kerja Laravel tidak terkecuali. Dengan Laravel Echo Server, pembangun web boleh melaksanakan pelayan WebSockets dengan mudah dan membina aplikasi komunikasi masa nyata dengan cepat. Artikel ini akan menyediakan panduan permulaan terperinci dengan Pelayan Echo Laravel untuk membantu anda memahami cara menggunakannya untuk melaksanakan komunikasi masa nyata dalam aplikasi Laravel.

Apakah itu Laravel Echo Server?

Laravel Echo Server ialah projek sumber terbuka Ia adalah pelayan komunikasi masa nyata untuk Laravel Echo Ia boleh digunakan dengan Laravel Echo untuk melaksanakan komunikasi WebSockets. Laravel Echo ialah perpustakaan JavaScript yang membolehkan pembangun menyambungkan aplikasi ke pelayan WebSockets menggunakan sintaks mudah. Pelayan Echo Laravel bertindak sebagai pelayan.

Dalam Pelayan Echo Laravel, pembangun boleh mencipta pelayan komunikasi masa nyata menggunakan Node.js dan Socket.io. Laravel Echo Server adalah berdasarkan Socket.io dan menyediakan API dan konsol mudah untuk memudahkan pengguna membina pelayan WebSockets.

Memasang Laravel Echo Server

Mula-mula anda perlu memasang Node.js dan npm. Jika anda telah memasangnya, langkau langkah ini.

Pasang Node.js dan npm

sudo apt-get update
sudo apt-get install nodejs
sudo apt-get install npm

Selepas pemasangan selesai, sila sahkan sama ada Node.js dan npm berjaya dipasang.

node -v
npm -v

Seterusnya, anda boleh memasang Laravel Echo Server menggunakan npm. Masukkan arahan berikut dalam terminal untuk memasang:

sudo npm install -g laravel-echo-server

Setelah pemasangan selesai, anda boleh menyemak versi Laravel Echo Server menggunakan arahan berikut:

laravel-echo-server -v

Konfigurasi Aplikasi Laravel

dalam Sebelum menggunakan Laravel Echo Server, anda perlu mengkonfigurasi aplikasi Laravel anda untuk berkomunikasi dengan pelayan WebSocket. Selepas versi Laravel 5.6, rangka kerja Laravel mempunyai pembekal perkhidmatan Pusher terbina dalam. Dalam config/broadcasting.php anda boleh mencari konfigurasi untuk pembekal perkhidmatan Pusher.

Secara lalai, rangka kerja Laravel menggunakan penyedia perkhidmatan Pusher untuk mengendalikan acara siaran. Walau bagaimanapun, jika anda ingin menggunakan Laravel Echo Server, anda perlu mengubah suai fail ini supaya Laravel Echo boleh mendengar acara siaran pada pelayan WebSocket.

Sebelum mengubah suai fail config/broadcasting.php, anda perlu memasang kebergantungan komposer.

composer require predis/predis

Sekarang, buka fail config/broadcasting.php dan tukar pemacu siaran kepada redis.

'connections' => [
     'redis' => [
         'driver' => 'redis',
         'connection' => 'default',
     ],
],

Seterusnya, anda perlu memasang perkhidmatan Redis dan memulakannya. Redis boleh dipasang menggunakan arahan berikut:

sudo apt-get install -y redis-server

Mulakan perkhidmatan redis:

sudo systemctl start redis

Sekarang, aplikasi Laravel sedia untuk berkomunikasi dengan Pelayan Echo Laravel.

Mengkonfigurasi Pelayan Echo Laravel

Dalam bahagian ini, kami akan mengkonfigurasi Pelayan Echo Laravel dan memulakannya. Laravel Echo Server menyediakan fail konfigurasi ringkas yang boleh anda konfigurasikan pelayan WebSocket dengan menukar tetapan fail. Secara lalai, Laravel Echo Server menggunakan storan fail untuk menyimpan data pelanggan, tetapi anda boleh memilih untuk menggunakan Redis untuk menyimpan data pelanggan.

Mengkonfigurasi Fail Pelayan Echo Laravel

Sebelum menggunakan Pelayan Echo Laravel, anda perlu mencipta fail konfigurasi. Anda boleh menggunakan arahan berikut untuk mencipta fail konfigurasi dalam direktori root aplikasi anda.

laravel-echo-server init

Selepas menjalankan arahan init, Laravel Echo Server akan mencipta fail konfigurasi laravel-echo-server.json baharu. Anda boleh menggunakan arahan berikut untuk mengedit fail konfigurasi.

nano laravel-echo-server.json

Dalam editor anda akan melihat tetapan lalai untuk profil. Berikut ialah beberapa tetapan biasa yang boleh anda ubah mengikut keperluan.

{
    "authHost": "http://localhost",
    "authEndpoint": "/broadcasting/auth",
    "clients": [],
    "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": false,
    "host": null,
    "port": "6001",
    "protocol": "http",
    "socketio": {},
    "sslCertPath": "",
    "sslKeyPath": "",
    "sslCertChainPath": "",
    "sslPassphrase": "",
    "subscribers": {
        "http": true,
        "redis": true
    },
    "apiOriginAllow": {
        "allowCors": false,
        "allowOrigin": "",
        "allowMethods": "",
        "allowHeaders": ""
    }
}
  • authHost: Nama/alamat hos aplikasi yang dikonfigurasikan dalam Laravel.
  • authEndpoint: Siarkan titik akhir pengesahan dalam aplikasi Laravel.
  • pelanggan: nama pelanggan dan kunci.
  • pangkalan data: jenis storan data pelanggan.
  • devMode: Sama ada Laravel Echo Server sedang berjalan dalam mod pembangunan.
  • hos: Nama hos terikat pada pelayan WebSocket.
  • port: Port yang terikat pada pelayan WebSocket.
  • protokol: Protokol pelayan WebSocket.
  • pelanggan: pelanggan mesej.
  • apiOriginAllow: Hos yang menyokong permintaan API.

Tukar dan simpan fail konfigurasi mengikut persekitaran sebenar anda.

Mulakan Laravel Echo Server

Selepas melengkapkan konfigurasi, gunakan arahan berikut untuk memulakan Laravel Echo Server.

laravel-echo-server start

Laravel Echo Server kini telah berjaya dimulakan dan boleh digunakan untuk melaksanakan pelayan WebSocket.

Komunikasi masa nyata adalah sangat mudah dengan Laravel Echo Server. Dalam Laravel, hanya siarkan acara menggunakan:

broadcast(new WebsocketDemoEvent($user, $message));

Ini akan menyiarkan acara WebsocketDemoEvent baharu pada Pelayan Gema Laravel. Sila pastikan anda telah memulakan Laravel Echo Server menggunakan arahan di atas dalam konsol.

Laravel Echo Server menyediakan antara muka pengurusan mesra yang boleh anda akses melalui penyemak imbas untuk melihat maklumat status pelayan WebSocket. Secara lalai, antara muka pengurusan terletak di http://localhost:6001.

Di sini, artikel ini memperkenalkan cara menggunakan Laravel Echo Server untuk melaksanakan pelayan WebSockets. Laravel Echo Server menyediakan cara mudah untuk mengendalikan komunikasi masa nyata, yang menjadikan WebSockets sangat berguna kepada pelbagai pembangun web. Jika anda sedang mencari cara mudah untuk melaksanakan komunikasi masa nyata, cuba Laravel Echo Server.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan pelayan WebSockets menggunakan Pelayan Echo Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn