اذهب إلى المحتوى

السؤال

نشر (معدل)

بعد إضافة الشهادة على الخادم لم تعد تعمل الاتصالات عبر Socket.IO في لارافيل. 

لقد حاولت تغيير إعدادات Echo في لارافيل لتصبح:

var echo = require('laravel-echo-server');

var options = {
    host: 'https://localhost',
    port: '6001',
    sslCertPath: '/etc/nginx/ssl/nginx.crt',
    sslKeyPath: '/etc/nginx/ssl/nginx.key'
};

echo.run(options);

ثم قمت بتغيير http إلى https ضمن Echo في الجافاسكريبت:

import Echo from "laravel-echo"
window.echo = new Echo({
    broadcaster: 'socket.io',
    host: 'https://localhost:6001'
});

ولكنها مازالت لا تعمل. ما هو حل هذه المشكلة؟

تم التعديل في بواسطة Amir Alsaeed

Recommended Posts

  • 0
نشر

بما أنه قد تم إضافة الشهادة بالشكل الصحيح، يجب الآن إنشاء مسار على الخادم عبر proxy لتلقي الاتصالات. وبهذه الطريقة يستطيع nginx الحصول على بروتوكول ssl وبالتالي لا تحتاج لاستخدام منفذ port آخر إضافي.

يمكن تعديل إعدادات nginx لتصبح على الشكل التالي:

location /ws/{

    proxy_pass http://127.0.0.1:3000/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $remote_addr;
}

وبعدها يتم الاتصال على العنوان التالي:

https://localhost/ws

وضمن الجافاسكريبت أيضاً يجب تعديل المسار ليصبح:

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.host,
    path: '/ws/socket.io',
});

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...