Webhooks مقابل WebSockets: ما الفرق بينهما؟

Webhooks مقابل WebSockets: ما الفرق بينهما؟

Webhooks و WebSockets هما تقنيتان لتطوير الويب غالبًا ما يخلط بينهما الناس. تستفيد العديد من تطبيقات الويب الحديثة من كل من Webhooks و WebSockets. على الرغم من اختلافهما تمامًا ، فإن كلا من Webhooks و WebSockets يعالجان الاتصال في تطبيقات الويب.



إذن ما هي Webhooks و WebSockets؟ ما الأشياء التي تجعلها مختلفة؟





كيفية حذف فاصل صفحة في Word

ما هي Webhooks وكيف تعمل؟

يمكنك التفكير في Webhook على أنه 'طلب HTTP يتم تشغيله بواسطة الحدث'. ماذا يعني هذا؟ Webhook هو إجراء رد اتصال HTTP يتم تشغيله عادةً بواسطة حدث في الخادم. هذا ليس كل شيء ، فعادةً ما يرسل البيانات عبر عنوان URL مهيأ مسبقًا إلى خادم آخر. يولد هذا فكرة أن Webhooks هي وسيلة اتصال 'من خادم إلى خادم'.





لفهم آلية عمل Webhooks بشكل أفضل ، ضع في اعتبارك تطبيق ويب يستخدم Stripe’s API لتلقي المدفوعات. عندما يقوم أحد العملاء بالدفع ، يتلقى Stripe الأموال ، لكن تطبيقك ليس لديه أي فكرة. هذا هو المكان الذي يأتي فيه Webhooks. ضع في اعتبارك الصورة أدناه:

  تصور لكيفية عمل Webhooks

يتطلب Stripe منك تقديم عنوان URL لنقطة نهاية Webhook لإرسال بيانات الدفع الخاصة بالعميل إلى الخادم الخاص بك عند تشغيل حدث دفع جديد. ثم يتلقى الخادم البيانات ، ويقوم بعمليات عليها ، ويحفظ البيانات الدائمة في قاعدة البيانات.



ما هي WebSocket وكيف تعمل؟

WebSocket هو بروتوكول ستستخدمه عادةً مع JavaScript . إنه ينشئ قناة اتصال ثنائية الاتجاه ومستمرة وثنائية الاتجاه. يفعل ذلك أكثر من واحد تم الاتصال بين منفذي TCP من عميل (متصفح) إلى خادم. التطبيق الأكثر شيوعًا لـ WebSockets هو تطبيقات الدردشة مثل WhatsApp.

على الرغم من أن Webhooks تعتمد على HTTP (أي الاستفادة من بروتوكول HTTP) ، فإن WebSocket هو بروتوكول كامل قائم على بروتوكول TCP مثل HTTP تمامًا. يمكن أن تكون WebSockets مفيدة جدًا عند العمل على تطبيقات دفق بيانات الخادم والعميل بزمن انتقال منخفض.





يمكنك تحقيق زمن انتقال منخفض باستخدام اتصال WebSocket لأنه يظل مفتوحًا بين المعاملات ، على عكس HTTP الافتراضي. هذا يسمح للبيانات بالتدفق بسلاسة بين الطرفين.

  التصور websocket

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





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

على عكس Webhooks ، يمكن لأي من طرفي اتصال WebSocket إرسال البيانات إلى الطرف الآخر. هذا هو أحد الأسباب التي تجعل WebSockets تقدم ميزة سرعة هائلة ، خاصةً عند إرسال البيانات من الخادم إلى العميل. يجب أن تستفيد التطبيقات التي تستخدم WebSockets من وقت الاستجابة البطيء عند جلب البيانات من الخادم.

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

متى يجب استخدام Webhooks؟

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

إذن متى يجب عليك اختيار Webhooks على WebSockets؟

  • عند استهلاك واجهة برمجة تطبيقات لا تمتلكها. ضع في اعتبارك مثال Stripe من الرسم التوضيحي السابق لخطاف الويب. Stripe هو مزود خدمة دفع ولا يمكن للتطبيق الخاص بك إلا بناء على واجهة برمجة التطبيقات الخاصة بهم. ليس لديك سيطرة على Stripe ، لذلك لا يمكنك إنشاء خادم WebSocket في نهايتها. في مثل هذه الحالات ، يجب عليك استخدام Webhooks.
  • إذا كان تطبيقك عبارة عن خادم يحتاج إلى الاتصال بخادم آخر ، فمن الأفضل استخدام Webhooks. هذا هو نظام الاتصال المثالي 'من خادم إلى خادم'.
  • خطافات الويب ليست ثنائية الاتجاه أو دائمة. يجب عليك استخدام Webhooks فقط عندما لا يتوقع تطبيقك بيانات استجابة عبر نفس القناة.
  • من الجدير بالذكر أيضًا أن Webhooks هي الطريقة المثالية للذهاب لعمليات الخادم التي تعمل كوظائف بدون خادم. تتضمن الأمثلة وظائف AWS Lambda و Google cloud.

يمكنك تجربة Webhooks على webhook.site . يتيح لك هذا الموقع معرفة الشكل الذي ستبدو عليه البيانات التي يرسلها Webhook إلى تطبيقك. من المفيد جدًا فهم طبيعة اتصال Webhook قبل محاولة تنفيذ نقطة نهاية في تطبيقك.

متى يجب استخدام WebSockets؟

تعد تطبيقات الوقت الفعلي وأنظمة الإخطار وأنظمة مشاركة البيانات الحية بعض التطبيقات الشائعة لـ WebSockets. مع الأخذ في الاعتبار أنه مع WebSockets ، يجب أن تكون قناة الاتصال مفتوحة دائمًا ، ويجب استخدام هذا البروتوكول فقط عندما تكون التكلفة تستحق ذلك.

  • يجب عليك استخدام WebSockets عندما يتبادل تطبيقك البيانات باستمرار بين العميل والخادم. على سبيل المثال ، في تطبيق مشاركة الموقع المباشر ، يتم تحديث موقع المستخدم باستمرار على كل من الخادم والعميل أثناء انتقالهما. WebSockets جعل هذا ممكنًا.
  • في تطبيقات اتصالات الوسائط المتعددة مثل WhatsApp ، يعد WebSocket بروتوكول الاتصال المثالي. يسمح بتبادل سريع للبيانات ثنائي الاتجاه وهو أمر أساسي لهذه الأنواع من التطبيقات.
  • يجب عليك أيضًا استخدام WebSockets في التطبيقات التي تنفذ موجزات في الوقت الفعلي مثل Livescore. يشارك هذا الموقع تحديثات مباشرة لمباريات كرة القدم فور حدوثها في الوقت الفعلي. لكنها تفعل ذلك دون الحاجة إلى تقديم طلبات جديدة أو مطالبتك بتحديث متصفحك.
  • تشمل الحالات الأخرى التي يجب عليك فيها استخدام WebSockets تطبيقات البث المباشر للفيديو / الصوت وأنظمة الإشعارات المباشرة والألعاب متعددة اللاعبين في الوقت الفعلي. كما أنها مفيدة في تطبيقات التحرير التعاونية مثل محرر مستندات Google و Notion وما إلى ذلك.

Webhooks و WebSockets مختلفان

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

من المهم دائمًا تحديد حاجتك عند إنشاء تطبيق لتجنب إهدار الموارد. في بعض الحالات ، يجب أن تفضل Webhooks لأن WebSockets قد تكون باهظة التكلفة في بعض الأحيان. تأكد من استخدامها عند الضرورة فقط.

أين ترسل الرسائل للجنود