سوال در مورد SignalR
در سینتکس های اسکریپت درون صفحه , متد های هاب , به دو صورت تفکیک میشوند بدین صورت
MyHub.Server.MyMethod
MyHub.Client.MyMethod
سوال بنده اینه که سرور و کلاینت چه تفاوتی در ایجاد فانکشن میکند؟
تفکیک فانکشن ما درون کد انجام میشوند و کلاینت و سرور در کد سی اس مشخص میشود
خواستم بدونم اینجا چرا سرور و کلاینت تفکیک میشود؟
2 پاسخ
دقیقاً منظورتون رو متوجه نشدم، داخل signal r در حقیقت کاری که برای شما انجام میشه، بر اساس کلاس hub ای که نوشتید یک کلاس proxy ایجاد میشه که عملیات فراخوانی متدهای hub رو انجام میده، یعنی در زمان اجرا کلاس hub پردازش میشه و کدهای js ایجاد میشه، حالا شما در سمت سرور هم وقتی که متدی رو داخل کلاس hub فراخوانی می کنید این کلاس بر اساس ID اتصالی که بین client و server ایجاد شده در سمت client که یک کد javascript رو فراخونی می کنه.
با تشکر بنده متوجه جواب شدم با درج یک نمونه "وب اپ" چت, توضیح میدم
در جایی که با رنگ سبز مارک کردم اگر اشتباه نکنم کد رو باید اینجور خوند :
کلاینت ها اگر از سمت سرور دیتایی دریافت کردن اون پیام را طبق قالبی که هست چاپ نمایند
پس این فانکشن در هر لحظه منتظر هست که از طرف سرور Response دریافت نماید
و متد send به صورت ثابت در اسکریپت ها تعریف شده است.
و در مارک قرمز ما در اونت کلیک از طریق پراکسی که به هاب کلس خود داریم . متد ارسال خود به سرور را فرا خوانی میکنیم.