Compare commits

..

No commits in common. "e9b4e2d34cfcb7b78071ea18efb89f670ad14a81" and "62acb4d736310c0e8f6adcf3ab2be020d04fbe41" have entirely different histories.

View file

@ -38,7 +38,9 @@ add_toc = true
مضغوط وهو يتكون من 33 بايت (264 بت) يتم ترميزه بترميز [base58] على سبيل المثال
العنوان التالي `becZJsZZqGR7qBG8t1Pm4uy62jDTzJsabxnkARhr2syo`.
يتم وضع العنوان العام في رأس (Header) الطلب (Request) بأسم `X-OTMP-PUBLIC` ويجب ان يكون نص [base58] صحيح مكون من 33 بايت (264 بت).
يتم وضع العنوان العام في رأس (Header) الطلب (Request) بأسم `X-OTMP-PUBLIC` او في
بيانات ال [Websocket] في المفتاح `public_key` ويجب ان يكون نص [base58] صحيح مكون
من 33 بايت (264 بت).
## أسم الخادم
أسم الخادم هو نطاق إلكتروني طبيعي، على سبيل المثال `example.com` ويتم جلب عنوان
@ -107,7 +109,7 @@ base58 فقط:\
### إنشاء التوقيع
التوقيع يحتاج إلى ثلاث اشياء ليتم إنشائه
- مفتاح التشفير المشترك.
- جسم الطلب (body) أو بيانات الحدث (data) أو طريقة الطلب+المسار، مثال (GET/ws/chat)
- جسم الطلب (body) او بيانات الحدث (data).
- ثواني الوقت الحالي للمنطقة الزمنية UTC بتنسيق [Unix Time] (8 بايت أي 64 بت
**big-endian**).
- 16 بايت عشوائي (128 بت).
@ -138,25 +140,27 @@ bad035084e11bfd266c7b7dfa473d6603be551b3aa215f869776b75bf42ef31900000000665e1a69
الطلب مرة أخرى من المهاجمين (ضمان أن التوقيع صالح لمرة واحدة فقط).
### شكل البيانات داخل إتصال الـWebsocket
بعد الإتصال بـ[Websocket] مع الخادم، يكون تنسيق البيانات التي يتم تبادلها
بعد الإتصال بـ[Websocket] مع الخادم، سوف يكون تنسيق البيانات التي يتم تبادلها
بين المرسل والخادم json ويجب عليها توفر المفاتيح التالية
- `event`: إسم الحدث، على سبيل المثال إرسال رسالة او تحديث حالة الكتابة (التنسيق PascalCase).
- `event`: إسم الحدث، على سبيل المثال إرسال رسالة او تحديث حالة الكتابة.
- `data`: البيانات الخاصة بالحدث.
- `public_key`: وهو العنوان العام الخاص بالمرسل.
- `signature`: توقيع بيانات الحدث (data)، هذا التوقيع يكون بين المرسل وبين
الخادم وليس المُستقبل.
#### مثال لشكل البيانات في ال websocket
ليكون الشكل النهائي كالتالي (مثال)
<div dir="ltr">
```json
{
"event": "EventName",
"event": "EVENT_NAME",
"data": {
"key": "value"
},
"public_key": "becZJsZZqGR7qBG8t1Pm4uy62jDTzJsabxnkARhr2syo",
"signature": "bad035084e11bfd266c7b7dfa473d6603be551b3aa215f869776b75bf42ef31900000000665e1a696e6d776f65726e6664757265686a66"
}
```