Korat
ميزة

محادثة بين شخصين ومكالمات من المتصفح مباشرة

وحدة الرسائل في Korat ضيّقة عن قصد: شخصان وخيط واحد. وكل ما عداها في التطبيق — طاولة دُعيت إليها، منشور شاركه أحدهم، تطابق من وحدة التعارف — يصل داخل هذا الخيط كبطاقة يمكنك التصرّف بها.

الدردشة هي الجزء الذي يتّكئ عليه بقية Korat. صديق يدعوك إلى طاولته في المطعم فتصل الدعوة بطاقةً في المحادثة، وأحدهم يشارك منشورًا فيهبط بطاقةً تفتح المنشور، والتطابق في وحدة التعارف يصير محادثة حقيقية لحظة إعجاب الطرفين ببعضهما. ولأن للرسالة مكان وصول واحدًا، صار لك مكان واحد تنظر فيه، وبقي على وحدة الرسائل أن تُتقن عملًا واحدًا: خيط بين شخصين، بأنواع مرفقات تكفي كي لا تضطر إلى مغادرته.

شخصان وخيط واحد

الدردشة في Korat بين شخصين فقط: الخيط المباشر يسع شخصين بالضبط، ولا سبيل لإضافة ثالث. والحديث بين عدد أكبر يجري في مكانين آخرين، وليس أيٌّ منهما وحدة الرسائل هذه. أولهما منشورات المجموعات، حيث يحمل المنشور معرّف المجموعة فيرث التعليقات والإشارات والإشعارات من آلية الموجز نفسها، فيكون قابلًا للبحث، دائمًا، منظّمًا في خيوط. وثانيهما أن المجموعة أو النادي الرياضي قد يكون له غرف فرعية: قنوات نصّية على طريقة Discord مسرودة داخل المجموعة، مبنية على جداولها وصلاحياتها الخاصة، وتفعل أقلّ بكثير مما يفعله الخيط المباشر. وحدودها مكتوبة كاملة أدناه، لأن غرفة تبدو دردشةً وليست كذلك أسوأ من غياب الغرفة أصلًا.

وما يناله الخيط الثنائي في المقابل هو العمق: يمكنك الردّ على رسالة بعينها كاقتباس، وتعديل رسالة بعد إرسالها، والتراجع عن إرسالها، وتثبيت المهمّة منها في أعلى الخيط، والتفاعل بستة رموز سريعة أو بفتح شريط من ثلاثين رمزًا. ومؤشّر الكتابة وحالة القراءة يعملان كما تتوقّع.

ماذا يمكن أن تحمل الرسالة

إلى جانب النص هناك رفع الصور، والملفات أيًّا كان نوعها، والرسائل الصوتية المسجَّلة عبر MediaRecorder في الجهاز بصيغة AAC داخل حاوية M4A، مع تشغيلها داخل الفقاعة نفسها. ويمكنك إرسال موقعك. وهناك بطاقات نظام يصنعها بقية التطبيق: منشور مشارَك، ودعوة إلى طاولة، وسجل مكالمة جرت.

الرسالة الجديدة ترسل إشعارًا فوريًا إلى جهاز الطرف الآخر — في المحادثات الثنائية وفي صندوق وارد المتجر معًا. ولا يصل إلا إلى الأجهزة غير المسحوبة، وفتح المحادثة يمسح إشعارها. والمحادثة التي تنتج رسائل لا يُخبَر بها أحد ليست هادئة بل معطوبة. والقيد الذي يجب قوله بجانبها: لا توجد إشعارات فورية في تطبيق الويب. فإن كنت تتحدث من المتصفّح فسترى الرسالة عند فتح التبويب، لا حين تصل.

بطاقة سجل المكالمة أهم مما تبدو. المكالمة التي رنّت ولم يُجَب عليها تبقى بلا أثر: تفتح التطبيق لاحقًا فلا تجد ما يخبرك أن شيئًا حدث. وكتابة المكالمة داخل الخيط تجعل تاريخ العلاقة قائمة واحدة تُمرِّرها، لا محادثة في مكان وسجل مكالمات في مكان آخر.

مكالمات فتح بابها الطرفان

تعمل المكالمات الصوتية والمرئية على WebRTC حقيقي عبر مدير في التطبيق، مع كتم الصوت وإيقاف الكاميرا وتبديلها، وشاشة اتصال وارد بملء الشاشة، وإشعار حين يكون التطبيق في الخلفية. والمختلف هنا هو البوابة أمامها: الإذن بالمكالمة ثنائي الجانب ومستقل لكل محادثة. لا يظهر زرّا الصوت والفيديو في خيط ما حتى يفتح كلا الشخصين القفل من جهته، وقبل ذلك لا يستطيع أحدهما الاتصال بالآخر.

هذا ردّ مقصود على حقيقة أن رنين الهاتف أكثر ما يمكن لتطبيق أن يقتحم به حياتك. غريب وصل إليك من التعارف أو من صفحة متجر يستطيع أن يرسل رسالة تتجاهلها، لكنه لا يستطيع أن يجعل هاتفك يرنّ في الثانية صباحًا ما لم توافق أنت تحديدًا على ذلك. والإذن محسوب لكل محادثة، ففتحه لشخص لا يقول شيئًا عن أي شخص آخر، وهو قفل تفتحه لا إعداد مدفون في التفضيلات.

حدّان نقولهما بصراحة. الرسائل المباشرة بين شخصين فقط — لا يتحوّل الخيط إلى مجموعة، ولا توجد نسخة جماعية من وحدة الرسائل الموصوفة في هذه الصفحة. والموجود فعلًا هو الغرف الفرعية التي تحصل عليها المجموعة أو النادي، وهي نظام أنحف على جداول أخرى: نصّ عادي فقط، ترسله وتحذف ما أرسلته، بلا تحرير للرسالة، وبلا ردّ على رسالة بعينها، وبلا تفاعلات، وبلا صور أو ملفات أو رسائل صوتية، وبلا مكالمات. ولا ينبغي قراءة أي سطر في هذه الصفحة على أنه وصف لغرفة فرعية.

المكالمات ليست مشفّرة طرفًا إلى طرف، ولا يوجد خادم TURN. تسير الوسائط بين الجهازين مباشرةً حين تسمح الشبكتان بذلك، لكن من دون خادم ترحيل تفشل بعض التركيبات من مشغّلي الهاتف وترجمات العناوين المتشدّدة في إنشاء الاتصال أصلًا. وإذا لم تُنشأ المكالمة فهذا هو السبب غالبًا، وهو بنية تحتية لم نُقِمها بعد لا خلل في التطبيق.

الحضور نبضة، لا قناة دائمة

النقطة الخضراء في Korat تعني شيئًا واحدًا محدَّدًا: أن تطبيق ذلك الشخص كتب الطابع الزمني last_seen خلال آخر تسعين ثانية. إنها استطلاع دوري لا قناة مفتوحة، فهي رخيصة على البطارية وخشنة في الوقت نفسه. من أغلق التطبيق قبل أربعين ثانية يبدو متصلًا، ومن دخل نفقًا يختفي قبل أن يبتعد فعليًا.

نسمّيها نبضة لا «متصل»، لأن حالة الحضور أكثر ما يقرأه الناس على أنه دليل: دليل أن الرسالة رُئيت، ودليل أن أحدهم يتجاهلهم. ونافذة استطلاع من تسعين ثانية لا تحتمل هذا الوزن.

العثور على المحادثة التي تريدها

ميزتان تقومان بمعظم عمل إبقاء قائمة طويلة من المحادثات صالحة للاستعمال. الأولى هي الاسم البديل للمحادثة: تعيد تسمية أي محادثة بما تسمّي به ذلك الشخص فعلًا، والاسم الجديد لا يراه سواك. لا يتسرّب إلى الموجز ولا إلى المجموعات ولا إلى التعليقات ولا إلى ملفه الشخصي، فمن حفظته باسم «صاحب البيت» يظهر للجميع باسمه الذي كتبه هو. والأسماء في بقية Korat تُقرأ لحظيًا من الملف الشخصي تحديدًا كي لا يفترق تغيير الاسم في مكان عن مكان آخر.

والثانية هي الوسوم: بطاقات ملوّنة تنشئها بنفسك وتتحكّم في عضويتها، مع إنشاء وتعديل وحذف كامل، وتعمل مرشِّحات على قائمة المحادثات إلى جانب المرشِّحات المدمجة لغير المقروء والحسابات الرسمية والمحادثات القادمة من التعارف. والبحث يجري على اسم المحادثة وعلى آخر رسالة فيها، فجملة نصف متذكَّرة تكفي للوصول. ويمكن تثبيت محادثة أو وسمها كمقروءة أو حذفها.

ما الذي يراه الخادم، وما الذي تستطيع فعله تجاه شخص

تُخزَّن الرسائل على الخادم كنصّ ظاهر، تحميها سياسات الأمان على مستوى الصف التي تحصر صفوف المحادثة في طرفيها. لا يوجد في Korat تشفير طرفًا إلى طرف للدردشات ولا للمكالمات ولا للملفات، ولا تشفير على مستوى التطبيق للبيانات المخزَّنة يتجاوز ما توفّره قاعدة البيانات المُدارة. وإن كان ما تنوي مناقشته يستلزم ذلك، فاستخدم أداة بُنيت له، لأن وصفًا دقيقًا لنموذج التهديد أنفع لك من كلمة مطمئنة.

أما على المستوى الإنساني، فيمكنك حظر شخص من داخل الخيط أو من ملفه الشخصي، فتُخفى محادثاته ومنشوراته ويُزال من مجموعة بطاقات التعارف لديك في الوقت نفسه، ويمكنك الإبلاغ عنه. الحظر إجراء واحد بأثر في كل أنحاء التطبيق، لا شيء تعيده في كل واجهة.

لكل بطاقة تهبط في الخيط مصدر: الطاولة التي دُعيت إليها هي الطاولة نفسها في الطعام، والمنشور الذي وصلك هو ذلك المنشور بعينه في الموجز.

ورسائل الزبائن إلى المتجر تسلك المسار نفسه، غير أن الجهة التي تقرأها في المحل هي صندوق الوارد في لوحة التحكم. وحتى حين تمسح بطاقة عمل رقمية وتريد الكلام فورًا، ينتهي بك المطاف هنا.

الأسئلة الشائعة

هل يوجد في Korat دردشة جماعية؟

ليس في وحدة الرسائل. الخيط المباشر بين شخصين ولا يمكن إضافة ثالث إليه. والحديث بين عدّة أشخاص يجري في المجموعات بطريقتين: منشورات تدعم التعليقات والإشارات والإشعارات، وغرف فرعية داخل المجموعة على هيئة قنوات نصّية بطريقة Discord، وتحصل عليها الأندية الرياضية كذلك.

وتلك الغرف نظام منفصل عن الدردشة المباشرة وتفعل أقلّ منها بكثير: نصّ عادي فقط، ترسله وتحذف ما أرسلته، بلا تحرير للرسالة، وبلا ردّ على رسالة بعينها، وبلا تفاعلات، وبلا صور أو ملفات أو رسائل صوتية، وبلا مكالمات.

هذا حدّ حقيقي، لا حالة مؤقتة نصفها بتفاؤل.

هل رسائل Korat مشفّرة طرفًا إلى طرف؟

لا. الرسائل والملفات والمكالمات ليست مشفّرة طرفًا إلى طرف. تُحفظ صفوف الدردشة على الخادم وتحميها سياسات الأمان على مستوى الصف التي تحصر كل محادثة في طرفيها.

ولا يوجد تشفير على مستوى التطبيق للبيانات المخزَّنة يتجاوز ما توفّره قاعدة البيانات المُدارة.

لماذا لا أرى زرّ الاتصال في محادثة ما؟

الإذن بالمكالمة ثنائي الجانب ومستقل لكل محادثة. لا يظهر زرّا الصوت والفيديو إلا بعد أن يفتح الطرفان قفل المكالمات في ذلك الخيط تحديدًا.

وفتحه لشخص واحد لا يفتحه لأي شخص آخر.

مكالمة الفيديو لا تُنشأ عندي، ما الخلل؟

لا يوجد بعد خادم ترحيل TURN، ولذلك تعتمد المكالمة على قدرة الجهازين على الوصول أحدهما إلى الآخر مباشرةً. وبعض التركيبات من شبكات الهاتف وترجمات العناوين المتشدّدة لا تسمح بذلك، فتفشل المكالمة في الانعقاد أصلًا.

وإذا كان الجهازان على شبكة Wi-Fi واحدة، أو على شبكتين تسمحان بالاتصال المباشر بين الطرفين، فالمكالمة تنجح عادةً.

إذا غيّرت اسم محادثة، هل يرى الطرف الآخر الاسم الجديد؟

لا. الاسم البديل للمحادثة خاصّ بك وحدك، ويظلّ اسم العرض الحقيقي للطرف الآخر هو الظاهر للجميع، بما في ذلك في الموجز وفي التعليقات وفي المجموعات.

والأسماء في كل أنحاء Korat تُقرأ لحظيًا من الملف الشخصي، فلا يمكن للاسم البديل أن يتسرّب إلى المحتوى.

ابدأ محادثة

Korat مجاني، ويعمل على أندرويد وفي المتصفّح، والدردشة واحدة في الاثنين.