goch هو خادم دردشة مباشرة تتم استضافته ذاتيًا ومكتوب بلغة Go.
يسمح لك بتشغيل برنامج الدردشة المباشرة على البنية التحتية الخاصة بك.
يمكنك إنشاء العديد من غرف الدردشة الخاصة والعامة حيث يمكن أن يتواجد مستخدمين أو أكثر في نفس الوقت.
للاتصال، يستخدم نقاط نهاية RESTful وWebsockets وNATS Streaming وRedis.
goch هو فرع من Gossip، مع العديد من الميزات والإصلاحات المضافة.
لتشغيل goch محليًا، تحتاج إلى docker
و docker-compose
go
وتعيينه على المسار الخاص بك. بعد تنزيل/استنساخ المشروع، قم بتشغيل ./up
الذي يجمع الملف الثنائي ويقوم بتشغيل docker-compose مع goch وNATS Streaming وRedis. إذا لم تكن هناك أخطاء، فيجب تشغيل goch على المضيف المحلي (المنفذ 8080).
لكي يتم تشغيل الخادم، يجب تعيين متغيرات البيئة ADMIN_USERNAME
و ADMIN_PASSWORD
. في المستودع، يتم تعيينهما على admin
و pass
على التوالي، ولكن من الواضح أنه يجب عليك تغييرهما لأسباب أمنية.
بمجرد تشغيل الخادم، تتوفر المسارات التالية:
POST /admin/channels
: لإنشاء قناة جديدة. يجب عليك تقديم اسم فريد للقناة (عادةً ما يكون معرفًا)، ويتضمن الرد سر القناة الذي سيتم استخدامه للاتصال بالقناة لاحقًا. يجب استدعاء نقطة النهاية هذه من جانب الخادم باستخدام بيانات اعتماد المسؤول المقدمة. يجب حفظ الرد حتى تتمكن من الاتصال بالقناة لاحقًا.
POST /register
: تسجيل مستخدم في القناة. من أجل التسجيل في القناة، يجب توفير UID وDisplayName وChannelSecret وChannelName. اختياريًا، يلزم توفير سر المستخدم، ولكن إذا لم يكن الأمر كذلك، فسيقوم الخادم بإنشاء سر وإرجاعه.
GET /connect
: يتصل بالدردشة ويعيد اتصال WebSocket بالإضافة إلى سجل الدردشة. يجب توفير القناة وUID والسر. اختياريًا، يتم توفير LastSeq والذي سيعيد سجل الدردشة فقط بعد LastSeq (الطابع الزمني لـ UNIX).
يتم استخدام المسارات المتبقية فقط كـ "مساعدين":
GET /channels/{name}?secret=$SECRET
: يعرض قائمة الأعضاء في القناة. يجب توفير اسم القناة كمعلمة URL وسر القناة كمعلمة استعلام.
GET /admin/channels
: إرجاع قائمة بجميع القنوات المتاحة.
GET /admin/channels/{name}/user/{uid}
: يعرض قائمة بالرسائل غير المقروءة في الدردشة للمستخدم.
goch مرخص بموجب ترخيص MIT. تحقق من ملف الترخيص للحصول على التفاصيل.
أمير ريبيتش