ASP.NET实现消息推送的示例代码


本文摘自PHP中文网,作者Y2J,侵删。

ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。有兴趣的可以了解一下。

一.使用背景

1. SignalR是什么?

ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程。实时 Web 功能是指这样一种功能:当所连接的客户端变得可用时服务器代码可以立即向其推送内容,而不是让服务器等待客户端请求新的数据。

2.Push.js是什么?【需要浏览器支持H5Notifications】

Notifications翻译过来即是通知。那么Push.js的通知又是什么样的,见下图:大多数在屏幕的右下角出现。

需要允许哦:

3.很多时候我们只能使用轮询的方式进行数据展示的更新和消息推送。于是就想到有没有一种方式可以完成服务端数据更新时同步更新客户端的一种解决方案。

二.开始部署一个 SignalR项目【使用mvc】

1.新建mvc项目

.....................

2.导入程序包【Vs2015】

工具->NuGet包管理器-> 程序包管理控制台->Install-Package Microsoft.AspNet.SignalR->等待安装成功

3.新建集线器类

项目->右键->添加->新建项->SignalR->SignalR 永久链接类->保存->【以MyConnection1为例】MyConnection1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

public class MyConnection1 : PersistentConnection

 {

   /// <summary>

   /// 发送消息

   /// </summary>

   /// <param name="request"></param>

   /// <param name="connectionId"></param>

   /// <returns></returns>

   protected override Task OnConnected(IRequest request, string connectionId)

   {

     Debug.WriteLine(connectionId);

     return Connection.Send(connectionId, "Welcome!");//单推事列

   }

 

   /// <summary>

   /// 接受客户端消息

   /// </summary>

   /// <param name="request"></param>

   /// <param name="connectionId"></param>

   /// <param name="data"></param>

   /// <returns></returns>

   protected override Task OnReceived(IRequest request, string connectionId, string data)

   {

     Debug.WriteLine(data);

     return Connection.Broadcast(data);//广播

   }

   /// <summary>

   /// 掉线

   /// </summary>

   /// <param name="request"></param>

   /// <param name="connectionId"></param>

   /// <param name="stopCalled"></param>

   /// <returns></returns>

   protected override Task OnDisconnected(IRequest request, string connectionId, bool stopCalled)

   {

     Debug.WriteLine("掉线");

     return base.OnDisconnected(request, connectionId, stopCalled);

   }

 

   /// <summary>

   /// 重连

   /// </summary>

   /// <param name="request"></param>

   /// <param name="connectionId"></param>

   /// <returns></returns>

   protected override Task OnReconnected(IRequest request, string connectionId)

   {

     Debug.WriteLine("重连");

     return base.OnReconnected(request, connectionId);

   }

 }

4.新建 Owin Startup 类【SignalR遵循Owin标准,Startup则是组件的启动,默认会存在Startup类,只需修改即可】

我们在Configuration里面追加以下代码

1

2

3

4

public void Configuration(IAppBuilder app)

    {

      app.MapSignalR<MyConnection1>("/myconnection");

    }

解释:访问myconnection的时候,触发MyConnection1

阅读剩余部分

相关阅读 >>

ASP.NET实现消息推送的示例代码

更多相关阅读请进入《ASP.NET实现消息推送》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...