پیادهسازی یک سیستم اطلاعرسانی لحظهای با استفاده از **SignalR** در **ASP.NET Web Forms** یکی از روشهای مؤثر برای ارائه بهروزرسانیهای زنده به کاربران است. در اینجا یک راهنمای گامبهگام برای پیادهسازی این سیستم ارائه میدهم.
### مراحل پیادهسازی
#### 1. نصب SignalR
ابتدا، باید پکیج **SignalR** را به پروژه خود اضافه کنید. برای این کار میتوانید از **NuGet Package Manager** استفاده کنید:
```
Install-Package Microsoft.AspNet.SignalR
```
#### 2. ایجاد Hub
یک کلاس جدید به نام `NotificationHub` ایجاد کنید. این کلاس وظیفه ارسال پیامها به کلاینتها را بر عهده دارد.
```csharp
using Microsoft.AspNet.SignalR;
public class NotificationHub : Hub
{
public void Send(string message)
{
// ارسال پیام به همه کلاینتها
Clients.All.receiveMessage(message);
}
}
```
#### 3. پیکربندی SignalR
حالا باید SignalR را در پروژه خود پیکربندی کنید. این کار را در فایل `Global.asax` انجام دهید. به این صورت:
```csharp
using Microsoft.AspNet.SignalR;
using System;
using System.Web.Routing;
public class Global : System.Web.HttpApplication
{
protected void Application_Start()
{
// ثبت مسیریابی SignalR
RouteTable.Routes.MapHubs();
}
}
```
#### 4. ایجاد صفحه ASP.NET Web Form
حالا یک صفحه جدید به نام `Notification.aspx` ایجاد کنید و کد زیر را به آن اضافه کنید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Notification.aspx.cs" Inherits="YourNamespace.Notification" %>
<%@ Register Assembly="Microsoft.AspNet.SignalR" Namespace="Microsoft.AspNet.SignalR" TagPrefix="signalr" %>
Real-Time Notifications
Real-Time Notifications
$(function () {
// اتصال به Hub
var notificationHub = $.connection.notificationHub;
// دریافت پیام از سرور
notificationHub.client.receiveMessage = function (message) {
$('#notificationArea').append('
' + message + '
');
};
// شروع اتصال
$.connection.hub.start().done(function () {
$('#btnSend').click(function () {
var message = $('#txtMessage').val();
notificationHub.server.send(message);
$('#txtMessage').val('');
});
});
});
```
### 5. ایجاد صفحه ارسال پیام
برای تست سیستم، میتوانید یک صفحه دیگر ایجاد کنید (مثلاً `Sender.aspx`) که به شما امکان میدهد پیامها را ارسال کنید:
```html
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Sender.aspx.cs" Inherits="YourNamespace.Sender" %>
<%@ Register Assembly="Microsoft.AspNet.SignalR" Namespace="Microsoft.AspNet.SignalR" TagPrefix="signalr" %>
Send Notification
$(function () {
var notificationHub = $.connection.notificationHub;
// شروع اتصال
$.connection.hub.start().done(function () {
$('#btnSend').click(function () {
var message = $('#txtMessage').val();
notificationHub.server.send(message);
$('#txtMessage').val('');
});
});
});
```
### توضیحات کد
1. **NotificationHub**: این کلاس با وراثت از `Hub`، متد `Send` را تعریف میکند که پیام دریافتی را به تمام کلاینتها ارسال میکند.
2. **Global.asax**: در این فایل، مسیرهای SignalR را ثبت میکنید.
3. **Notification.aspx**: این صفحه نمایش دهنده پیامها است. با استفاده از jQuery و SignalR، به `Hub` متصل شده و پیامها را دریافت میکند.
4. **Sender.aspx**: این صفحه به شما اجازه میدهد که پیامها را ارسال کنید.
### نتیجهگیری
با این پیادهسازی، شما یک سیستم اطلاعرسانی لحظهای ساده با استفاده از **SignalR** در **ASP.NET Web Forms** ایجاد کردهاید. با استفاده از این سیستم، شما میتوانید پیامها را بهصورت زنده به کاربران ارسال کنید.
اگر سوال یا نیاز به توضیحات بیشتری دارید، خوشحال میشوم کمک کنم!
| صفحه قابل مشاهده:
دانلود کد پیادهسازی سیستم اطلاعرسانی لحظهای با استفاده از SignalR با ASP.NET Web Form میباشد