مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

استفاده از RealTime در پروژه

ﺳﻪ شنبه, 10 اردیبهشت 1398 13:19

استفاده از RealTime در پروژه

با سلام من تمام پکیچ های 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();
}

حالا میخوام با استفاده از کد بالا این جدول به روزسانی بشه باید جیکار کنم؟

ﺳﻪ شنبه, 10 اردیبهشت 1398 15:20

سلام

خب این کد که نمی‌تونه کاری برای شما بکنه!

SignalR صرفا یه Broadcast هستش و نه بیشتر

زمانی که یه پیامی رو میفرسته سمت کلاینت یه event رو raise میکنه که میتونی اونجا پیام رو دریافت کنی و کاری که می‌خوای رو انجام بدی و کاملا هم باید براش کد بزنی.

راه حل درستش که توی همه‌ی فریم ورک های درست حسابی هستش استفاده از Data Binding هستش که حالا یا باید از یه فریم ورک استفاده کنی یا خودت یه سیستم واسه اینکار بنویسی تا داده‌های جدولش به یه منبعی وصل بشن و زمانی که پیام رو از SignalR دریافت می‌کنی اون منبع رو آپدیت کنی ( مي‌تونه local storage ) و خودکار جدولت آپدیت بشه.

موفق باشی*

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید