آیا از بانک اطلاعاتی استفاده می کنید ؟
وب سرویس بعد از دریافت درخواست چه کاری انجام میده ؟
باید یک لایه میانی ایجاد کنید که درخواست های کاربر رو هم با سوکت مدیریت کنید
یک کلاس به عنوان "درخواست " ایجاد کنید و یک شناسه ( مثل IP کلاینت ) و اطلاعات درخواست مربوط به کلاینت رو درونش قرار بدید ، با هر بار ارسال درخواست به سرور یک کلاس از نوع " درخواست " درون سرور ساخته میشه و در یک لیست قرار می گیره ، ترتیب اجرای درخواستها هم میشه مثلا Index درخواست ها درون لیست
برای اجرای هر درخواست در سرور ، یک Thread ساخته میشه ، درون Thread عملیات مورد نظر رو انجام میدید ، در پایان کار Thread نتیجه رو با یک Message به اطلاع برنامه می فرستید ( منظور از Message مثلا ارسال نتیجه با PostMessage به Thread اصلی هستش ) ، برنامه با دریافت Message متوجه میشه که کار Thread و درخواست مورد نظر تمام شده و نتیجه ی دریافتی رو به کلاینت مورد نظر که با IP شناخته شده ارسال می کنه و پس از ارسال ، Thread جدیدی ایجاد میشه و درخواست بعدی رو اجرا می کنه تا زمانی که لیست خالی بشه
درواقع وب سرویس شما فقط درخواست رو در لیست ثبت می کنه و جواب رو نمی فرسته ، فقط دریافت می کنه
دلیل استفاده از Thread هم اینه که با اجرای هر درخواست سرور شما به اصطلاح هنگ نکنه و همیشه آماده باشه
همینطور می تونید به جای لیستی از کلاینتها اطلاعات درخواست و کلاینت رو در بانک موقتی ذخیره کنید
در اینصورت Delay ایجاد شده فقط در زمان دریافت درخواست و ثبت در لیست ( یا بانک ) هست و بعید به نظر میرسه باعث تداخل بشه
موفق باشید ...