منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الاتصال من الويب من خلال php لvb.net
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
هل من طريقة تمكن الاتصال من خلال الويب لبرنامج vb.net بمعني ان المستخدم من خلال صفحة الويب يقوم بعمل طلب المطلوب ارسال الطلب للبرنامج vb.net ليكون شبه api لاستقبال الطلب والرد عليه 

بدون استخدام قاعده بيانات mysql اي يكون الاتصال مباشر
لا يوجد حتى الان تقنية تقوم بهذا الاتصال بشكل مباشر.
لكن لو كان الجهاز الذي يعمل علية البرنامج له IP ثابت ومن خلال بورت معين , ممكن ان تتلقى الطلبات, وان تجعل البرنامج يستمع لهذا البورت .
حتى لو كان رقم الـ IP متغير هناك حلول مثل انشاء hostname من خلال خدمة مدفوعة مثل
Dynamic DNS - dyn.com
توفر لك عنوان ثابت ومن خلال البرناج تقوم بتحديث معلومات في الـ hostname  كلما تغير  الـ IP الخاص بك.

لكن الامور ليست بهذة البساطة تحتاج الى الكثير من الاعدادات.
اما امكانية ان تتصل او ترسل طلب request من صفحة ويب الى البرنامج VB مباشرتا فهذا غير ممكن ولا تتوفر تقنية تقوم بهذا الامر.
هناك طرق ولكن ملتوية جدا ومن غير المفترض ان تتم بهذة الطرق.
هناك امكانية ان ترسل رسائل مثل الاشعارات او رسائل التنبية مثل التي تظهر في الهاتف المحمول تسمى push notifications ولكنها لا تدعم تطبيقات سطح المكتب حتى الان.
يمكن ارسال رسائل من سيرفر الى اي متصفح او انظمة الهواتف ولكن ليس الى تطبيق ويندوز.

الطريقة الوحيدة امامك هي تسجيل الطلبات في مصدر على الانترنت مثل mysql
وعمل تحقق كل فترة زمنية من وجود طلبات جديدة. او من خلال زر في البرنامج عند الضغط علية فقط.

انا حاليا اريد مثل هذا الحل واتمنى ان اجد طريقة سلسة .
لدي سيرفر على الانترنت وارغب في ارسال تنبية من السيرفر الى كل التطبيقات المفتوحة الان لكي تقوم فقط بعمل ريفرش ( تحديث للبيانا المعروضة امام المستخدم ) , لم اجد طريقة لعمل هذا الامر.
الحل الوحيد سحب المعلومات كل ٣ ثواني من السيرفر, بعد مخاطبة اصحاب السيرفر ان هذة الطريقة لا تخالف سياسة الاستخدام. حتى لا يعتقدون ان تطبيقاتي تصرفاتها غريبة ومشبوهة. لأن عدد الاجهزة المتصلة بالسيرفر اكثر من ٥٠ جهاز في ٣ ثواني = ١٥٠ request كل ٣ ثواني
يعني ٣٠٠٠ request في الدقيقة
خلال ساعة يصبح ١٨٠,٠٠٠ ألف request , اصحاب السيرفر قالو ( عادي)
بنشوف ههههههههههه. المشكلة ان السيرفر مشترك , يعني معاي مواقع اخرى يتشاركون نفس موارد النظام في السيرفر. لو اضغط على السيرفر يمكن ياثر على مستوى الاداء في المواقع الاخرى
حبيت انقل تجربتي .

تحياتي.
(24-11-19, 02:43 AM)عبدالله الدوسري كتب : [ -> ]لا يوجد حتى الان تقنية تقوم بهذا الاتصال بشكل مباشر.
لكن لو كان الجهاز الذي يعمل علية البرنامج له IP ثابت ومن خلال بورت معين , ممكن ان تتلقى الطلبات, وان تجعل البرنامج يستمع لهذا البورت .
حتى لو كان رقم الـ IP متغير هناك حلول مثل انشاء hostname من خلال خدمة مدفوعة مثل
Dynamic DNS - dyn.com
توفر لك عنوان ثابت ومن خلال البرناج تقوم بتحديث معلومات في الـ hostname  كلما تغير  الـ IP الخاص بك.

لكن الامور ليست بهذة البساطة تحتاج الى الكثير من الاعدادات.
اما امكانية ان تتصل او ترسل طلب request من صفحة ويب الى البرنامج VB مباشرتا فهذا غير ممكن ولا تتوفر تقنية تقوم بهذا الامر.
هناك طرق ولكن ملتوية جدا ومن غير المفترض ان تتم بهذة الطرق.
هناك امكانية ان ترسل رسائل مثل الاشعارات او رسائل التنبية مثل التي تظهر في الهاتف المحمول تسمى push notifications ولكنها لا تدعم تطبيقات سطح المكتب حتى الان.
يمكن ارسال رسائل من سيرفر الى اي متصفح او انظمة الهواتف ولكن ليس الى تطبيق ويندوز.

الطريقة الوحيدة امامك هي تسجيل الطلبات في مصدر على الانترنت مثل mysql
وعمل تحقق كل فترة زمنية من وجود طلبات جديدة. او من خلال زر في البرنامج عند الضغط علية فقط.

انا حاليا اريد مثل هذا الحل واتمنى ان اجد طريقة سلسة .
لدي سيرفر على الانترنت وارغب في ارسال تنبية من السيرفر الى كل التطبيقات المفتوحة الان لكي تقوم فقط بعمل ريفرش ( تحديث للبيانا المعروضة امام المستخدم ) , لم اجد طريقة لعمل هذا الامر.
الحل الوحيد سحب المعلومات كل ٣ ثواني من السيرفر, بعد مخاطبة اصحاب السيرفر ان هذة الطريقة لا تخالف سياسة الاستخدام. حتى لا يعتقدون ان تطبيقاتي تصرفاتها غريبة ومشبوهة. لأن عدد الاجهزة المتصلة بالسيرفر اكثر من ٥٠ جهاز في ٣ ثواني = ١٥٠ request كل ٣ ثواني
يعني ٣٠٠٠ request في الدقيقة
خلال ساعة يصبح ١٨٠,٠٠٠ ألف request , اصحاب السيرفر قالو ( عادي)
بنشوف ههههههههههه. المشكلة ان السيرفر مشترك , يعني معاي مواقع اخرى يتشاركون نفس موارد النظام في السيرفر. لو اضغط على السيرفر يمكن ياثر على مستوى الاداء في المواقع الاخرى
حبيت انقل تجربتي .

تحياتي.




شكرا جزيلا لحضرتك للأسف أخاف من الاتصال عن طريق mysql لأنها تستنزف موارد الاستضافة 
لا أخي menams3 ,,,
أولاً : إستخدامك للـ MySql لا يستنزف موارد الإستضافة , إلا إذا كان لديك عدد كبير جداً جداً جداً من الزبائن الذين يطلبون بيانات من الـ MySql بشكل مستمر ومكثف وبدون فواصل زمنية .
مثل ما يحدث في صفحات أسعار البورصة (يتم تحديثها كل ثانية لعدد هائل من العملاء) , لا أعتقد أنك ستصل إلى مثل هذا السيناريو أو حتى قريب منة .!!!

ثانياً : لا يوجد أحد يقوم بعمل إتصال مباشر بقاعدة البيانات MySql , المعمول به هو إنشاء API بمعنى ( application programming interface )
الـ API عبارة عن ملف يحتوي على Functions وإجراءات أنت تكتبها باللغة التي تفضلها , إما php أو asp أو Java أو Python أو Ruby أو JavaScript-Node
كل ما عليك هو إستدعاء رابط الملف بالإضافة إلى المتغيرات التي ستحدد نوع الإجراء الذي ترغب في القيام بة وتقوم بإرجاع النتيجة إما على شكل ( نص عادي أو JSON أو XML , وأنواع كثيرة تشمل كل الميديا المستخدم على الويب ) ثم تقوم بمعالجتها بالطريقة التي تخدمك.
ملف الـ API  هو : http://www.my-website.com/my-api.php
المتغيرات التي سترسلها ستكون كالتالي :
http://www.my-website.com/my-api.php?action=GetMyData&MyName=abdulla&MyID=444

بإمكانك إضافة متغير لحماية الملف من التنفيذ من قبل إي شخص غير مصرح له بذلك , 
ويكون المتغير مثلاً باسم : MyApiKey وقيمتة تكون رقم طويل مع أحرف يكون بمثابة مفتاح الأمان. ويجب أن يمرر في كل عملية إستدعاء للـ API

http://www.my-website.com/my-api.php?action=GetMyData&MyName=abdulla&MyID=444&MyApiKey=AIzaSyClzfrOzB818x55FASHvX4JuGQciR9lv7q

داخل ملف الـ API تقوم بالتحقق من هذا المفتاح إذا لم يكن ضمن العنوان ( الـ GET أو الـ POST ) تقوم بإلغاء العملية ,وإذا كان موجود تقوم بالتحقق من إذا كان يساوي نفس المفتاح الموجود في ملف الـ API

بإمكانك إستخدام الـ Cookies أيضاً في عملية التحقق. 
مثل أن يرسل اسم المستخدم وكلمة المرور وتتحقق من قاعدة البيانات إذا كان فعلا مسجل والبيانات صحيحة , تقوم بزرع ملف Cookie في جهاز العميل دلالة على أنه تم التصريح لك بالدخول إلى النظام .
المهم :
بعد عملية التحقق تكتب أكوادك التي تتعامل مع الـ MySql و وتجلب البيانات بالطريقة التي تراها مناسبة لك, أو حتى تنفيذ أوامر على الـ MySql من إضافة أو حذف أو تحديث وكل ما يخطر على بالك من الأوامر.

بهذة الطريقة تستطيع جلب البيانات من أي مكان , من تطبيقات الوندوز سطح المكتب أو من تطبيقات الهاتف أو من صفحة HTML بواسطة الجافا سكربت أو حتى الـ jQuery أو من موقع آخر أو من اي سيرفر متصل بالإنترنت بواسطة أي لغة برمجة.