简体中文
Turms هو محرك المراسلة الفورية مفتوح المصدر الأكثر تقدمًا لعدد يتراوح من 100 ألف إلى 10 مليون مستخدم متزامن في العالم. يرجى الرجوع إلى وثائق Turms للحصول على التفاصيل.
(إصدار الخوادم التجريبية: ghcr.io/turms-im/turms-admin:latest
, ghcr.io/turms-im/turms-gateway:latest
, ghcr.io/turms-im/turms-service:latest
)
turms-admin: http://playground.turms.im:6510
كل من الحساب وكلمة المرور هما: guest
. (يُسمح للحساب بالاستعلام عن البيانات وإضافتها، ولكن لا يُسمح له بتحديث البيانات وحذفها.)
بوابة turms: http://playground.turms.im:10510 (منفذ للوصول إلى WebSocket) و http://playground.turms.im:11510 (منفذ للوصول إلى TCP)
خدمة turms (واجهة برمجة تطبيقات المشرف في بيئة التطوير مع دعم البيانات المزيفة): http://playground.turms.im:8510
بروميثيوس: http://playground.turms.im:9090; جرافانا: http://playground.turms.im:3000
يمكنك استخدام أي تطبيق turms-client-(java/js/swift) لإرسال الطلبات إلى بوابة turms والتفاعل مع المستخدمين الآخرين.
بالإضافة إلى ذلك، يتم إعداد Playground تلقائيًا من خلال أمر واحد فقط: ENV=dev,demo docker compose -f docker-compose.standalone.yml --profile monitoring up --force-recreate -d
تشغيل الأوامر التالية لإعداد الحد الأدنى من المجموعة القابلة للتطبيق (بما في ذلك turms-gateway وturms-service وturms-admin) والخوادم التابعة لها (مجموعة MongoDB المشتركة وRedis) تلقائيًا:
git clone --depth 1 https://github.com/turms-im/turms.git
cd turms
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
docker compose -f docker-compose.standalone.yml up --force-recreate
بعد إعداد المجموعة، يمكنك زيارة turms-admin على http://localhost:6510، وإدخال الحساب وكلمة المرور ( turms
بشكل افتراضي). إذا قمت بتسجيل الدخول بنجاح، فهذا يعني أنه تم إعداد مجموعة Turms بنجاح.
يمكنك أيضًا تطبيق وحدات Terraform التي تقدمها Turms لشراء الخدمات السحابية بسرعة وإعداد مجموعة turms (تستخدم المثيلات الموضعية بشكل افتراضي). بعد تشغيل terraform apply
، انتظر لمدة تتراوح من 3 إلى 15 دقيقة تقريبًا (Alibaba Cloud ECS بطيء في سحب صور ghcr)، ثم قم بزيارة http://<public IP>:6510
، إذا كان بإمكانك الوصول إلى turms-admin، فهذا يعني أن تم إعداد مجموعة turms بنجاح.
(ملاحظة: ستقوم الأوامر التالية بشراء الخدمات السحابية تلقائيًا وخصم الرسوم المقابلة من حسابك)
git clone --depth 1 https://github.com/turms-im/turms.git
cd turms/terraform/alicloud/playground
export ALICLOUD_ACCESS_KEY= < your_access_key >
export ALICLOUD_SECRET_KEY= < your_secret_key >
terraform init
terraform apply
تعتمد بنية Turms على تصميم القراءة المتشعبة لإنشاء صناديق البريد الوارد (أو الجداول الزمنية للرسائل)، ويدعم Turms نموذج الدفع ونموذج السحب ونموذج الدفع والسحب لتكون على دراية بالتغيرات في بيانات الأعمال (لمزيد من التفاصيل، الوعي بتغيير بيانات الأعمال ). معظم تفاصيل التصميم الأخرى تأتي أيضًا من مشاريع المراسلة الفورية التجارية.
وبالمقارنة بالعديد من المشاريع التي تحتوي على مجموعات تقنية قديمة، يعد Turms أيضًا حل المراسلة الفورية مفتوح المصدر الوحيد الذي يعتمد على الهندسة المعمارية الحديثة والتكنولوجيا الحديثة وهو مناسب للتطبيقات المتوسطة والكبيرة الحجم.
بالإضافة إلى ذلك، التصميم المعماري هو فن المقايضة. تتخذ بعض منتجات المراسلة الفورية ميزات غنية كشعار لها على حساب عدم دعم التطبيقات المتوسطة والكبيرة الحجم (فهي مناسبة فقط لاتصالات الفريق). ومع ذلك، فإن Turms يأخذ الأداء الفائق كأولوية أولى ويدعم ميزات المراسلة الفورية الكاملة (وليست الغنية) لدعم التطبيقات المتوسطة والكبيرة الحجم. يرجى الرجوع إلى تصميم مخطط Turms وقابلية الملاحظة للحصول على التفاصيل.
عندما تحتاج إلى مقارنة Turms مع مشاريع المراسلة الفورية الأخرى مفتوحة المصدر للحصول على الميزات، يمكنك أولاً مقارنة Turms مع مشاريع المراسلة الفورية الأخرى مفتوحة المصدر استنادًا إلى الميزات التالية في Turms. عادةً، يمكنك العثور على الاختلافات بين مشاريع المراسلة الفورية الاحترافية ومشاريع المراسلة الفورية للهواة. بالإضافة إلى ذلك، ضمن فصل Product Comparison
، ذكرنا أيضًا أوجه القصور في مشروع Turms لتكون مرجعًا لك.
ملحوظة: العيب الرئيسي لمشروع Turms الحالي هو أنه لا يوفر الدعم لغرفة المعيشة/الدردشة. التنفيذ الفني لغرفة المعيشة/الدردشة ليس صعبًا، لكن متطلبات المنتج ومتطلبات سمات الجودة والشروط المقيدة تختلف تمامًا عن سيناريوهات التطبيقات الاجتماعية العامة، لذا فإن الإصدار الأول من Turms لا يوفر الدعم لها. بالإضافة إلى ذلك، فإن Turms أيضًا غير مناسب لسيناريوهات اتصالات المؤسسات الصغيرة. إن استخدام Turms لسيناريوهات الاتصال المؤسسي هو استخدام مطرقة ثقيلة لكسر الجوز، لأن اتصالات المؤسسة تركز على الأداء الغني بالميزات بدلاً من التركيز على الأداء الفائق، وهو ما لا يتوافق مع أهداف Turms، لذا فإن تصميماتها مختلفة أيضًا. إذا كنت ترغب في دعم سيناريوهات الاتصالات المؤسسية، فأنت بحاجة إلى التطوير بناءً على Turms أنفسكم.
نظام يمكن ملاحظته (يرجى الرجوع إلى إمكانية الملاحظة للحصول على التفاصيل)
السجل (للأحداث): يوفر Turms ثلاثة أنواع من السجلات: سجل المراقبة، وسجل الأعمال، وسجل الإحصائيات
المقاييس (للبيانات المجمعة). وهو يعكس الحالة في الوقت الحقيقي للنظام وبيانات الأعمال
البحث عن المفقودين
لاحظ أن خادم Turms سيوفر المزيد من ميزات المراقبة التي يمكن تنفيذها بكفاءة قدر الإمكان، لكنه لن يوفر بعض الميزات الشائعة التي لها تأثير كبير على الأداء وتكون أكثر ملاءمة لتقديم خدمات الطرف الثالث (مثل DAU) . بالنسبة لهذا النوع من الميزات الموسعة، يمكنك تنفيذها عن طريق التحليل دون الاتصال بالإنترنت أو في الوقت الفعلي لسجلات أو مقاييس خوادم Turms.
الأداء الفائق نحاول دائمًا أرشفة الأداء الفائق في تنفيذ جميع سير عمل الأعمال. يرجى الرجوع إلى كود المصدر للحصول على التفاصيل.
اسم | ملخص |
---|---|
بوابة turms | بوابة (خادم دفع) تتفاعل مع العملاء، وتكون مسؤولة عن مصادقة المستخدم، وإدارة الجلسة، ودفع الإشعارات، وموازنة التحميل لخوادم خدمة turms |
خدمة turms | ينفذ منطق أعمال المراسلة الفورية، ويزود المسؤولين بإدارة بيانات الأعمال، وRBAC، وإدارة المجموعة |
turms-admin | يوفر ميزات مثل إدارة بيانات الأعمال وإدارة المجموعة لمجموعة خوادم Turms |
turms-client-js | يعرض واجهات برمجة التطبيقات للتفاعل مع خادم Turms لتنفيذ ميزات المراسلة الفورية ومنطق برنامج التشغيل الأساسي (مثل نبضات القلب) ومشاركة اتصال WebSocket بين علامات التبويب. لا تحتاج إلى معرفة تطبيقاته لأنه شفاف بالنسبة للمطورين |
يتحول العميل kotlin | يعرض واجهات برمجة التطبيقات للتفاعل مع خادم Turms لتنفيذ ميزات المراسلة الفورية ومنطق برنامج التشغيل الأساسي (مثل نبضات القلب). لا تحتاج إلى معرفة تطبيقاته لأنه شفاف بالنسبة للمطورين |
يتحول إلى عميل سريع | كما سبق |
يتحول العميل ثبة | كما سبق |
turms-plugin | عندما يتم تشغيل الأحداث (مثل اتصال المستخدم بالإنترنت/عدم الاتصال بالإنترنت، وتلقي الرسائل وإعادة توجيهها، وما إلى ذلك)، فإن turms-gateway وturms-service ستؤدي إلى تشغيل المكونات الإضافية المخصصة المقابلة لتسهيل على المطورين تنفيذ الميزات المخصصة |
turms-البرنامج المساعد لمكافحة البريد العشوائي | مكون إضافي يعتمد على turms-plugin للحماية من البريد العشوائي باستخدام Aho-Corasick automaton مع مصفوفة مزدوجة (التعقيد الزمني للاكتشاف هو O(n)، وn هو طول نقاط رمز السلسلة المستهدفة) |
turms-البرنامج المساعد-minio | مكون إضافي يعتمد على turms-plugin لخدمة التخزين، ويستخدم للتفاعل مع خادم MinIO |
turms-plugin-rasa | مكون إضافي يعتمد على turms-plugin الخاص بروبوت الدردشة، ويستخدم للتفاعل مع خادم Rasa |
بيانات turms (TODO) | لم تنشر بعد. يعد نظام تحليل البيانات المستقل المستند إلى النظام البيئي Flink مسؤولاً عن تحليل بيانات الأعمال، ويوفر دعم البيانات الأساسي لواجهات برمجة التطبيقات الإحصائية الخاصة بـ turms للمسؤولين والتقارير التشغيلية لـ turms-admin |
التصميم المعماري لـ Turms مشتق من بنيات المراسلة الفورية التجارية. يوضح الشكل التالي البنية المرجعية لـ Turms. الخدمات المُحاطة بخطوط منقطة هي خدمات اختيارية، في حين أن الخدمات المُحاطة بخطوط متصلة هي خدمات مطلوبة. يرجى الرجوع إلى Turms Architecture Design للحصول على التفاصيل.
على الرغم من وجود العديد من مشاريع المراسلة الفورية مفتوحة المصدر في العالم، إلا أنه يوجد مشروع واحد فقط مفتوح المصدر للمراسلة الفورية مصمم لسيناريوهات تطبيقات المراسلة الفورية المتوسطة والكبيرة: Turms.
صاروخ.دردشة | سحابة الرسائل الفورية مغلقة المصدر | تورمس | |
---|---|---|---|
سيناريوهات التطبيق | اتصالات الفريق | سيناريوهات المراسلة الفورية العامة | سيناريوهات IM عامة متوسطة إلى واسعة النطاق (جعل Turms ممكنة لإعادة التطوير) (ملاحظة: الإصدار الأول من Turms لا يوفر الدعم لغرفة المعيشة/غرفة الدردشة) |
المزايا | 1. توفير الخدمات السحابية بمجرد النقر بالماوس لبدء المجموعة وتقديم الخدمات 2. يتم تنفيذ العميل عبر الأنظمة الأساسية وخارج الصندوق بالنسبة للمستخدمين 3. دعم مجموعة واجهة المستخدم كاملة وموحدة 4. دعم ميزات المراسلة الفورية المتقدمة الغنية، مثل مؤتمرات الصوت والفيديو ومشاركة الملفات ومشاركة الشاشة 5. تزويد المستخدمين التجاريين بالدعم الفني | 1. توفير الخدمات السحابية بمجرد النقر بالماوس لبدء المجموعة وتقديم الخدمات 2. يتم تنفيذ العميل عبر الأنظمة الأساسية وخارج الصندوق بالنسبة للمستخدمين 3. دعم مجموعة واجهة المستخدم كاملة وموحدة 4. دعم ميزات المراسلة الفورية المتقدمة الغنية، مثل مؤتمرات الصوت والفيديو ومشاركة الملفات ومشاركة الشاشة 5. تزويد المستخدمين التجاريين بالدعم الفني | المزايا هي الميزات الموضحة أعلاه |
العيوب | 1. مناسبة فقط للتطبيقات الصغيرة الحجم 2. سيناريوهات التطبيق ضيقة ويصعب تخصيصها | 1. إنه مغلق المصدر ولا يمكن تخصيصه. سيكون لأي مشروع حتمًا متطلبات عمل جديدة بعد نمو الأعمال، والتي تحتاج إلى تخصيصها. ومع ذلك، فإن سحابات المراسلة الفورية إما لا توفر خدمات مخصصة أو تتطلب رسوم تخصيص عالية، وقد تسيء فهم متطلباتك، مما يؤدي إلى ميزات مخصصة لا يمكنها تلبية احتياجات عملك بشكل جيد. سوف يستغرق الأمر تعاونًا طويل الأمد للعمل بشكل جيد معهم. ولكن بناءً على Turms، يمكن تنفيذ متطلباتك وتوفيرها بسرعة، وبتكلفة منخفضة. ملاحظة: للحصول على تفاصيل حول مدى تعقيد المراسلة الفورية، يمكنك الرجوع إلى تصميم المخطط 2. خصوصية البيانات. يتم تخزين جميع معلومات المستخدم وبيانات الرسائل الخاصة بك على سحابات الرسائل الفورية، والتي يمكنها الاطلاع على بياناتك واستخدامها. خاصة بالنسبة لبعض شركات المراسلة الفورية الصغيرة، فإن أمان البيانات غير مضمون على الإطلاق، بل وتحتاج إلى تحمل مخاطر فقدان البيانات غير القابلة للاسترداد. 3. كلما زاد استخدامك لسحابات المراسلة الفورية، زاد اعتمادك عليها، وأصبحت أكثر تكلفة. توفر معظم سحابات المراسلة الفورية حصة مجانية معينة أو فترة تجريبية معينة، ولكن بعد نمو حجم مستخدم منتجك، يتعين عليك دفع رسوم استخدام عالية أو التخلي عن الاستخدام لبدء تطوير خادم المراسلة الفورية الخاص بك 4. الدعم الفني ليس في الوقت المناسب. تحتاج سحابات المراسلة الفورية إلى توفير الدعم الفني للعديد من العملاء في نفس الوقت، وقد يتأخر دعم منتجك | 1. يلبي فقط احتياجات المراسلة الفورية العامة، ولا يوفر بعض الميزات المتقدمة (على سبيل المثال، لا يوجد دعم لعقد مؤتمرات الصوت والفيديو) 2. الإصدار الأول من Turms لا يدعم غرفة المعيشة/الدردشة 3. يوفر خادم Turms فقط البيانات الأولية للمقاييس/السجلات، ولا يوفر وظائف مثل التحليل والإنذارات 4. لا يوفر turms-admin لإدارة النظام القائم على الويب ميزات تشغيل متقدمة حاليًا5. لا يوجد دعم لمنطق عمل محدد وواجهة مستخدم 6. الخوادم متفاعلة، وهو ما يمثل تحديًا لبعض المطورين |
تعليق | يوصى بشدة باستخدام Rocket.Chat للاتصالات الجماعية | إذا كانت سيناريوهات أعمال المراسلة الفورية في منتجك شائعة جدًا، ولا توجد متطلبات مخصصة، ولم تكن أعمال المراسلة الفورية هي الأعمال الرئيسية لمنتجك، فمن المستحسن استخدام سحابات المراسلة الفورية. ولكن إذا لم تكن هناك متطلبات خاصة، فحاول عدم استخدام سحابة المراسلة الفورية التي توفرها الشركات الصغيرة، وإلا فلن يتم ضمان أمان بياناتك | على الرغم من أن كلاهما مشروعان للرسائل الفورية مفتوحان المصدر، إلا أن لهما سيناريوهات تطبيق مختلفة تمامًا. Turms هو محرك مراسلة فورية عام لتطبيقات المراسلة الفورية المتوسطة والكبيرة الحجم. لا يمكنك تسليم Turms إلى عملائك فحسب (تمامًا كما لا تسمح معظم المنتجات للعملاء بكتابة عبارات SQL للاستعلام عن بيانات العمل في قاعدة البيانات). ومع ذلك، استنادًا إلى Turms، يمكنك تنفيذ جميع مشاريع المراسلة الفورية مفتوحة المصدر على GitHub بشكل أكثر كفاءة وشمولية وعلى نطاق واسع |
بالنظر إلى موقع Turms، فإننا لا نخطط لتقديم عرض توضيحي للعميل مع واجهة المستخدم ومنطق عمل محدد في المستقبل القريب لأنه.
من السهل على المطورين التحقق من ميزات الأعمال التي يدعمها Turms. إذا كنت تريد فقط اختبار ميزات الأعمال في Turms، فيمكنك تشغيل خادم Turms دون كتابة سطر من التعليمات البرمجية. يمكن لعشرة أسطر فقط من التعليمات البرمجية تحقيق تسجيل الدخول وإرسال الرسائل وإرسال طلبات الأصدقاء وميزات العمل الأخرى أو تعديل الخصائص لتخصيص المتطلبات المختلفة.
يرتبط تصميم العرض التجريبي وتنفيذه ارتباطًا وثيقًا بسيناريوهات الأعمال المحددة ولغة البرمجة المحددة والبنية التقنية المحددة ونظام التشغيل المحدد بينما تلتزم Turms بالوفاء بكفاءة بسيناريوهات المراسلة الفورية المعقدة والصعبة المختلفة، ولا نريد ذلك نشر عرض توضيحي يحد من خيال المطورين. كما أن تطوير العرض التوضيحي وصيانته يستغرق وقتًا طويلاً للغاية وسيؤدي إلى إبطاء تقدم تطوير Turms.
حاليًا، ما عليك سوى "الدردشة" مع GPT-3.5 وGPT-4 لتحقيق الحلول التقنية المخصصة وتصميم واجهة المستخدم. خذ النص كمثال على الإدخال (بالإضافة إلى ذلك، يدعم GPT-4 إدخال الصور، ويمكنك أيضًا رسم إطارات سلكية لواجهة المستخدم لاقتراح الطريقة التي يريد بها تصميم واجهة المستخدم).
يرجى تنفيذ نافذة دردشة لخدمة العملاء تعمل على نهاية الويب بناءً على تقنيات Vue3 وVite وEslint وغيرها. متطلبات محددة.
- يجب أن يشير أسلوب تصميم واجهة المستخدم إلى: Ant Design
- يجب تقسيم نافذة الدردشة إلى ثلاثة أجزاء: في الأعلى، يجب عرض اسم خدمة العملاء؛ وفي المنتصف يجب أن يتم عرض رسالة الدردشة بين المستخدم وخدمة العملاء؛ وفي الأسفل يجب توفير مربع إدخال النص وزر الإرسال للسماح للمستخدم بإدخال النص وإرسال الرسائل.
- يجب أن تظهر نافذة الدردشة دائمًا في الزاوية اليمنى العليا من الصفحة
- يجب أن تفترض أن نافذة الدردشة تعتمد على بروتوكول WebSocket للتواصل مع الخادم الخلفي لتسجيل الدخول وإرسال الرسائل وتلقي الرسائل وما إلى ذلك.
- تحتاج إلى إعطاء هيكل المشروع وجميع عمليات تنفيذ التعليمات البرمجية المحددة في المشروع بناءً على حل التصميم المكوّن لواجهة المستخدم
يمكن لـ GPT توفير تنفيذ التعليمات البرمجية المقابلة على الفور، ويمكنك مواصلة "الدردشة" معها على أساس سيناريوهات مختلفة (يمكنك السماح لـ GPT بتوفير سيناريوهات متعددة ومقارنتها) لتحسين تصميم واجهة المستخدم وتنفيذ التعليمات البرمجية لإغلاق التنفيذ النهائي. لفكرتك.
مشروع Turms مرخص بموجب Apache License 2.0
، لذلك لا يهمنا ما إذا كان المستخدمون يخططون لتحقيق أرباح من مشروع Turms. نحن نطلب فقط من المستخدمين الالتزام Apache License 2.0
في أعمالك، مثل المستندات ومقاطع الفيديو والأكواد وغيرها، مع ذكر معلومات مشروع Turms، مثل:
Original Project Name:turms-im/turms
Original Project:https://github.com/turms-im/turms
Original Project Documentation:https://turms-im.github.io/docs
كيف يكون مشروع ترمز مربحا؟
لا نحتاج أن نكون مربحين في الوقت الحالي. بالطبع لا نستبعد الربح، ولكننا لن نتعمد كتابة مستندات سيئة أو القيام بعمل سيئ من أجل كسب الاستشارات والتدريب وغيرها من النفقات. شيء آخر يجب ذكره هو أن هناك بالفعل العديد من المشاريع مفتوحة المصدر (المغلقة) التي تكسب رسوم دعم الخدمة عن طريق كتابة مستندات سيئة عن عمد والقيام بعمل سيئ.
إذا استشهدت المنظمات الربحية، مثل مؤسسات أو شركات التدريب، بمستندات Turms، أو حتى باعت مشاريع Turms كخدمات SaaS، فهل تحتاج هذه المنظمات الربحية إلى الاهتمام بأي شيء؟
لا يهمنا ما إذا كان فريقك يخطط لتحقيق ربح من مشروع Turms. يحتاج فريقك فقط إلى الامتثال Apache License 2.0
وذكر معلومات مشروع Turms كما هو مذكور أعلاه.
مشروع Turms مناسب لتقديم خدمات SaaS، فلماذا لا يعتمد مشروع Turms ترخيص AGPL أو SSPL؟
نحن حاليا لا نحتاج لتحقيق الربح، ولا نخطط لتحقيق الربح. نحن نطلب فقط من المستخدمين الالتزام بترخيص Apache License 2.0
.
إذا كان مشروع ترمز غير مربح فما هي جودة مشروعه؟
لقد أجابت وثائقنا وكود المصدر الخاص بنا على هذا السؤال، وفي مجتمع المصادر المفتوحة، لا يوجد مشروع مراسلة فورية مفتوح المصدر يمكنه التنافس مع مشروع Turms في سيناريوهات تطبيقات المراسلة الفورية المتوسطة والكبيرة. شيء آخر يجب ذكره هو أن المشاريع التجارية لا تعني الجودة العالية، وحتى جودة التوثيق والأكواد للعديد من المشاريع التجارية تعتبر صادمة.
هل تستخدم Turms اتفاقيات ترخيص مزدوجة أو لديها رسوم مخفية؟
لا. بعض المشاريع تكون مجانية للاستخدام الشخصي ويتم فرض رسوم عليها مقابل الاستخدام التجاري، وذلك باستخدام اتفاقيات الترخيص المزدوجة، أو بها العديد من الرسوم المخفية. مشروع Turms مرخص بموجب ترخيص Apache License 2.0
، ولا توجد أي رسوم. تدعي بعض المشاريع أنها برمجيات مفتوحة المصدر، لكنها ليست كذلك. لمزيد من التفاصيل، يرجى الرجوع إلى تعريف المصدر المفتوح.
تم تطويره بشكل أساسي في IntelliJ IDEA وCLion.
يرجى تقديم الترخيص من قبل فريق دعم مجتمع JetBrains.