PDA

View Full Version : کند شدن برنامه نوشته شده با signalR بعد از گذشت 20 دقیقه



resident
پنج شنبه 20 مهر 1396, 16:43 عصر
سلام.
من یه برنامه نوشتم که تو اون وقتی کاربری، اطلاعاتی رو برای کاربر دیکه ای ارسال می کنه میخوام با signalr بهش پیام بدم.
برنامشو نوشتن اما مشکلی که دارم اینه که بعد از حدود 20 دقیقه برنامه به حدی کند میشه که دیگه نمیشه باهاش کار کرد

اول یه startup ساختم. اینم کلاسش:



public class Startup
{
public void Configuration(IAppBuilder app)
{
//For SignalR
GlobalHost.Configuration.DefaultMessageBufferSize = 500;
app.MapSignalR();
}
}




تو کد زیر، پیامی به کاربرها از طریق سیگنال ار فرستاده میشه. تو entity.Ids آیدی تمام کاربرها قرار داره



foreach (var id in entity.Ids)
{
NotificationHub.SendNotifications(message,id.ToStr ing());
}



و نهایتا تو View :


<script src="@Url.Content("~/Scripts/jquery.signalR-2.2.1.min.js")"></script>

<script src="~/signalr/hubs"></script>


<script>
$(function () {
var notificationHub = $.connection.notificationHub;

notificationHub.client.receiveNotification = function (message, userID) {

if (userID == '@SessionHelper.GetUserID()') {

$.pnotify({
title: 'ارجاع پیام جدید',
text: message,
type: "notice", ".
delay: 10000 , .
hide: false
});

$(".soundplay").trigger('play');
};
}
$.connection.hub.start();
});
</script>


این کد کار می کنه اما بعد 20 دقیقه خیلی کند میشه ، طوری که دیگه نمیشه با سیستم کار کرد.

به نظرتون مشکل از کجاست؟

یه موضوعی رو هم بگم. ممکنه تو برنامه 10 تا یوزر باشه، اما من میخوام پیام رو فقط به برای تعدادی شون بفرستم. تو برنامه (دومین قسمت کدی که گذاشتم)، پیام به همه کاربران ارسال میشه اما تو کدی که تو view نوشتم(سومین قسمت کد) میام آیدی کاربر جاری رو با آیدی که از سمت سیگنال آر اومده مقایسه می کنم. اگه یکی بود، اونوقت پیام رو نمایش میدم.
به نظرتون ممکنه این قسمت ، باعث کند شدن برنامه شده باشه؟