
في هذا الدليل سنوضّح كيفية إعداد القنوات الخاصة باستخدام Laravel Valet وSoketi. إذا واجهت صعوبات في إنشاء اتصالات WSS مع Valet بسبب مشكلات SSL، أو لم تكن متأكداً من كيفية تهيئة قناة خاصة في بيئة Valet المحلية، فأنت في المكان الصحيح.
لنبدأ مباشرة. تأكّد أولاً من تثبيت Soketi باتباع دليل التثبيت والذي يجعله يعمل افتراضياً على المنفذ 6001. يجب أن يعمل الأمر soketi start
دون مشاكل، وعند زيارة 127.0.0.1:6001 في المتصفح ستظهر كلمة "ok".
بعد تثبيت Soketi يمكنك استخدامه كما هو للقنوات العامة وضبطه في ملف .env
كما ورد في التوثيق لأنه يستخدم منفذ WS غير المشفّر. لكن عند محاولة فتح قناة خاصة ستحتاج إلى اتصال WSS (ويب سوكِت آمن)، وهو غير متاح افتراضياً. قد تظهر المشكلة أيضاً إذا كان اتصال مشروعك آمناً ويتحول تلقائياً إلى WSS بدلاً من WS.
لجعل Soketi يعمل على قناة آمنة في Valet يجب أولاً إنشاء وكيل proxy آمن للمنفذ 6001 عبر الأمر:
valet proxy socket-server http://127.0.0.1:6001 --secure
ينشئ هذا الأمر موقعاً افتراضياً باسم socket-server.test
مرتبطاً بعنوان 127.0.0.1:6001 ومزوّداً بشهادة.
وبعد تأمين الاتصال، أنشئ ملف ضبط JSON لتشغيل Soketi. أنشئ ملفاً باسم soketi_config.json
وضع فيه المحتوى التالي:
{
"debug": true,
"appManager.array.apps": [
{
"id": "app-id",
"key": "app-key",
"secret": "app-secret",
"maxConnections": -1,
"enableClientMessages": false,
"enabled": true,
"maxBackendEventsPerSecond": -1,
"maxClientEventsPerSecond": -1,
"maxReadRequestsPerSecond": -1,
"webhooks": [
],
"ssl": [
{
"certPath" : "the patch to .crt for socket-server.test that we created earlier",
"keyPath": "the patch to .key for socket-server.test that we created earlier",
"passphrase": "",
"caPath": ""
}
]
}
]
}
في macOS ستجد ملفّي .crt
و.key
في المسار: /Users/yourname/.config/valet/Certificates
.
وشغّل خادم Soketi بهذا الملف عبر:
soketi start ----config=/Users/yourname/path_to/soketi_config.json
وفي ملف .env
، عوضاً عن:
PUSHER_HOST=127.0.0.1
PUSHER_PORT=6001
استخدم الآن:
PUSHER_HOST=socket-server.test
PUSHER_PORT=
تهانينا! يعمل اتصال WSS الآن بسلاسة في بيئة Valet لديك.