अंत में मिल गया।
जबकि मेरी वेबसाइट में अभी भी एक एसएसएल होना चाहिए, इसका समाधान Apache
. प्राप्त करना है रीडायरेक्ट करने के लिए /socket.io
करने के लिए http://localhost:6001/socket.io
redis
. के लिए पहले से ही कॉन्फ़िगर किया गया है . फिर 2.2.3
का प्रयोग करें socket io
. का संस्करण ।
तो मेरा laravel-echo-server.json
SSL के लिए कॉन्फ़िगर नहीं किया गया है।
ये रहा मेरा laravel-echo-server.json
:
{
"authHost": "https://domainName.com",
"authEndpoint": "/broadcasting/auth",
"clients": [
{
"appId": "xxxxxxx",
"key": "xxxxxxxxxxx"
}
],
"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": true,
"allowOrigin": "*",
"allowMethods": "GET, POST",
"allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
}
}
मैं laravel-echo-server.json का उपयोग कैसे करता हूं:
import Echo from "laravel-echo";
window.io = require('socket.io-client');
// Have this in case you stop running your laravel echo server
if (typeof io !== 'undefined') {
window.Echo = new Echo({
broadcaster: 'socket.io',
host: window.location.hostname,
});
}
और मेरे एसएसएल virtualhost
के भीतर मेरा अपैक्स कॉन्फिगरेशन मेरे डोमेन के लिए:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/socket.io [NC]
RewriteCond %{QUERY_STRING} transport=websocket [NC]
RewriteRule /(.*) ws://localhost:6001/$1 [P,L]
ProxyPass /socket.io http://localhost:6001/socket.io
ProxyPassReverse /socket.io http://localhost:6001/socket.io
इसके अलावा इसे laravel-echo-server
रखने के लिए एक Node js प्रोसेस मैनेजर की आवश्यकता होगी। दौड़ना। इसलिए मैंने echo-server.json
created बनाया और निम्नलिखित कोड रखा।
{
"name": "apps",
"script": "laravel-echo-server",
"args": "start"
}
इसके बाद, मैं pm2
स्थापित करता हूं प्रक्रिया प्रबंधक। npm install pm2 -g
और मेरी सेवा शुरू की pm2 start echo-server.json --name="apps"
।
अंत में मैं pm2 list
का उपयोग करता हूं मेरी सभी सेवाओं को देखने के लिए और pm2 startup
मेरी सेवाओं को चालू रखने के लिए।