PDA

View Full Version : ارتباط به وسیله پیام بین کلاینتها



Iman_a13
پنج شنبه 03 بهمن 1387, 22:37 عصر
سلام به دوستان حرفه ای

من یه برنامه نوشتم که به یه دیتابیس sql server در هاست وصله و چند تا کلاینت در این برنامه به از این دیتابیس استفاده می کنند و دسترسی نوشتن و خواندن دارند حالا می خواستم بدونم چطوری میشه اگه یه نفر متن یا درخواستی از کلاینتهای دیگه داره اونو تو برنامه در یک قسمتی مثل تابلوی اعلانات بنویسه و بقیه کلاینتها هم اونو ببینن و بعد سیستم به طور اتوماتیک بعد از گذشت 3 روز از تاریخ درخواست اونو حذف کنه

میشه راهنمایی بفرمائید:خجالت:

vcldeveloper
جمعه 04 بهمن 1387, 01:49 صبح
راههای مختلفی هست، به ترتیب از آسون به سخت:
1- این امکان در خودِ بانک اطلاعاتی پیاده سازی بشه؛ یعنی تابلو اعلانات شما یک جدول بانک اطلاعاتی باشه که کلاینت ها با Refresh کردن نسخه خودشان از داده های آن جدول در فواصل زمانی معین، آخرین پیام ها را دریافت کنند.

2- خودتان یک Message Server بنویسید که در کنار SQL Server، پیام هایی را از کلاینت ها دریافت، و پیام هایی را به آنها ارسال کند. معمولا در دلفی برای این کار از کامپوننت های Indy استفاده میشه.

3- از Notification Service مربوط به SQL Server استفاده کنید. برای این کار باید طرز کار با این سرویس را بلد باشید، که مربوط به تالار SQL Server میشه، و همچنین کدهایی بنویسید که برنامه دلفی شما را قادر به ارسال و دریافت پیام به/از این سرویس بکند.

accpascal
جمعه 04 بهمن 1387, 19:58 عصر
:

2- خودتان یک Message Server بنویسید که در کنار SQL Server، پیام هایی را از کلاینت ها دریافت، و پیام هایی را به آنها ارسال کند. معمولا در دلفی برای این کار از کامپوننت های Indy استفاده میشه.
.
جناب کشاورز من خیلی search زدم ولی از message server راهکارهای عملی چیزی ندیدم
آیا در برنامه های استفاده شده از پروتکل soap می توان از message ها استفاده کرد و چگونه

vcldeveloper
جمعه 04 بهمن 1387, 22:59 عصر
آیا در برنامه های استفاده شده از پروتکل soap می توان از message ها استفاده کرد
SOAP یک پروتکل انتقال پیام برپایه XML هست. بله، میشه از آن هم برای ارسال پیام استفاده کرد، البته بخاطر استفاده از XML سربار بالایی داره. در حال حاضر پرکاربردترین استفاده SOAP در WebServices هست.


و چگونه
شما یک بستر برای انتقال پیام آماده می کنید، مثلا در WebServiceها HTTP به عنوان بستری برای انتقال پیام هست. شما مثلا می تونید با استفاده از Indy در سطحی پایین تر، از TCP استفاده کنید. اون وقت باید برای هر پیام، در برنامه خودتان سندهای XMLایی مطابق پروتکل SOAP بسازید، و آن را از برنامه به گیرنده ارسال کنید. گیرنده هم باید بعد از دریافت پیام، آن را براساس پروتکل SOAP پردازش کند، تا به داده ارسال شده برسد، و براساس آن واکنشی نشان دهد.

Iman_a13
جمعه 04 بهمن 1387, 23:30 عصر
آقای کشاورزی عزیز میشه بگید دقیقا من از کجا شروع کنم

vcldeveloper
شنبه 05 بهمن 1387, 00:14 صبح
لازم نیست برای این کار از پروتکلی مثل SOAP استفاده کنید، خودتون می تونید برای خودتون یک ساختار برای پیام های ارسالی و دریافتی بسازید.


آقای کشاورزی عزیز میشه بگید دقیقا من از کجا شروع کنم
در Demoهای Indy دو مثال هست:
1- Chat
2- IdTCPDemo