با سلام من تمام پکیچ های RealTime رو نصب کردم
بعد یه کلاس ClockHub.cs ایجاد کردم به صورت زیر
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.AspNet.SignalR; using System.Data; using System.Data.SqlClient; using System.Web.UI.WebControls; namespace RealTimeClock.App_Code { public class ClockHub : Hub { public void getTime(string countryZone) { TimeZone currentZone = TimeZone.CurrentTimeZone; DateTime currentDate = DateTime.Now; DateTime currentUTC = currentZone.ToUniversalTime(currentDate); TimeZoneInfo selectedTimeZone = TimeZoneInfo.FindSystemTimeZoneById(countryZone); DateTime currentDateTime = TimeZoneInfo.ConvertTimeFromUtc(currentUTC, selectedTimeZone); Clients.Caller.setTime(currentDateTime.ToString("h:mm:ss tt")); } } }
و یک کلاس Startup.cs
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; using Microsoft.AspNet.SignalR; [assembly: OwinStartup(typeof(RealTimeClock.Startup))] namespace RealTimeClock { public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR("/signalr", new HubConfiguration()); } } }
و یک کد جاوا هم هست به صورت زیر
var countryZone = "Bangladesh Standard Time"; $(document).ready(function () { var hubProxy = $.connection.clockHub; hubProxy.client.setTime = function (time) { $('#clock').html(time); }; $.connection.hub.start().done(function () { setInterval(function () { hubProxy.server.getTime(countryZone); }, 1000); }); }); function select_country() { countryZone = $("#lstCountry").val(); }
حالا میخوام با استفاده از کد بالا این جدول به روزسانی بشه باید جیکار کنم؟
سلام
خب این کد که نمیتونه کاری برای شما بکنه!
SignalR صرفا یه Broadcast هستش و نه بیشتر
زمانی که یه پیامی رو میفرسته سمت کلاینت یه event رو raise میکنه که میتونی اونجا پیام رو دریافت کنی و کاری که میخوای رو انجام بدی و کاملا هم باید براش کد بزنی.
راه حل درستش که توی همهی فریم ورک های درست حسابی هستش استفاده از Data Binding هستش که حالا یا باید از یه فریم ورک استفاده کنی یا خودت یه سیستم واسه اینکار بنویسی تا دادههای جدولش به یه منبعی وصل بشن و زمانی که پیام رو از SignalR دریافت میکنی اون منبع رو آپدیت کنی ( ميتونه local storage ) و خودکار جدولت آپدیت بشه.
موفق باشی*
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)