سلام دوستان
شبتان بخیر
من دارم از برودکست و ریل تایم تو سایتم استفاده میکنم
از کتابخونه laravel-echo-server و ردیس برای ریل تایم استفاده کردم تو لوکال هاست ریل تایم به خوبی کار میکنه اما در سرور مشکل داره و مدام یه ارور میده
ارور اول cors origin بود که برطرف شد
حالا ی خطای دیگه مرتب میده و منو خسته کرده
تصویر خطا رو قرار دادم
و نمونه کدهای من در فایل جی اس به صورت زیر هستش
import _ from "lodash";
window._ = _;
/**
* We'll load the axios HTTP library which allows us to easily issue requests
* to our Laravel back-end. This library automatically handles sending the
* CSRF token as a header based on the value of the "XSRF" token cookie.
*/
import axios from "axios";
window.axios = axios;
window.axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
/**
* Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting
* allows your team to easily build robust real-time web applications.
*/
$.ajaxSetup({
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
},
});
import Echo from "laravel-echo";
window.io = require("socket.io-client");
if (typeof io !== 'undefined') {
window.Echo = new Echo({
broadcaster: "socket.io",
transports: ["websocket", "polling", "transports"],
host: 'https://mydomain.com:6001',
});
}
وب سرور انجینیکس هست که تنظیماتش هم برای لاراول اکو سرور به این صورت انجام شده
location /socket.io/ {
proxy_pass http://localhost:6001/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
فایل laravel-echo-server.json هم به این صورت هست
{
"authHost": "https://mydomain.com",
"authEndpoint": "/broadcasting/auth",
"clients": [],
"database": "redis",
"databaseConfig": {
"redis": {
"host": "127.0.0.1",
"port": "6379"
}
},
"devMode": true,
"host": null,
"port": "6001",
"protocol": "https",
"socketio": {},
"sslCertPath": "/etc/letsencrypt/live/mydomain.com/cert.pem",
"sslKeyPath": "/etc/letsencrypt/live/mydomain.com/privkey.pem",
"sslCertChainPath": null,
"sslPassphrase": null,
"subscribers": {
"http": false,
"redis": true
},
"apiOriginAllow": {
"allowCors": true,
"allowOrigin": "https://mydomain.com, https://mydomain.com:6001",
"allowMethods": "GET, POST",
"allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
}
}
اگه راه حلی دارید بفرمایید با کمال میل در خدمتم
سلام
به نظر میاید که مشکل شما ممکنه به دلیل تنظیمات SSL و WebSocket باشه.
تنظیمات Nginx:
location /socket.io/ {
proxy_pass http://localhost:6001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
تنظیمات Laravel Echo Server:
laravel-echo-server.json
به درستی اعمال کردید؟sslCertPath
و sslKeyPath
به صورت کامل به فایلهای SSL شما اشاره کرده باشه.تنظیمات Laravel Echo:
window.Echo = new Echo({
broadcaster: "socket.io",
transports: ["websocket", "polling"],
host: window.location.hostname + ':6001',
});
window.location.hostname
ممکنه نیاز به تغییر داشته باشه، بسته به نحوه تنظیم دامنه شما.اگر با راهکارها مشکل حل نشد، اطلاعات بیشتری در مورد ارورهای لاگ ناکس و لاگهای سرور Laravel Echo میتوانه به تشخیص دقیقترمشکل کمک کنه.
موفق باشید.
سلام ممنونم از شما
این ارورهای لاگ ناکس و لاگهای سرور Laravel Echo رو از کدم فایل و قسمت باید پیدا کنم؟
@mmirabi
لاگ ناکس (Nginx):
لاگ ارور ناکس:
مسیر: /var/log/nginx/error.log
لاگ دسترسی ناکس:
مسیر: /var/log/nginx/access.log
لاگهای سرور Laravel Echo:
مسیر پیشفرض:
/path/to/your/laravel/app/storage/logs/laravel.log
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟