zoukankan      html  css  js  c++  java
  • 比官方教程代码更简短的SignalR Server Broadcast示例

    SignalR是微软ASP.NET技术体系中的新成员。

     

    www.asp.net网站上的SignalR专区有一篇SignalR的入门级教程《Tutorial: Server Broadcast with ASP.NET SignalR (C#)》,介绍了通过SignalR实现服务器端广播的方法。文章中实现了简单的股票信息实时推送,这是一个服务器-客户端双向实时通信的典型应用。然而我觉得这篇教程虽然简单,但是作为入门的话代码量(特别是无关代码量)显得太多了,当时我用此教程学习的时候不得不从几页代码中上下翻找与SignalR的使用有关的关键点,体验不是很好。于是我自己练习时,另外写了一个简化版的Hello world,现在放出来跟大家交流。

     

    我的示例很简单,就是服务器端定时发起更新客户端页面上的一个字符串消息。消息内容也没有花头,直接在几个固定内容中轮换。

     

    服务器端:

     

    public class MessagesHub : Hub

    {

        static MessagesHub()

        {

            StringPusher.Init();

        }

    }

     

    public static class StringPusher

    {

        private static string[] _messages = { "这是从服务器推送的消息。""使用ASP.NET SignalR技术实现。""从此不再需要客户端定时发送请求。""可实现双向实时通信。" };

        private static System.Timers.Timer _timer = new System.Timers.Timer(3000);

        private static IHubConnectionContext _clients = GlobalHost.ConnectionManager.GetHubContext<MessagesHub>().Clients;

        private static int _messageIndex = 0;

     

        public static void Init()

        {

            _timer.Elapsed += (sender, e) => Broadcast();

            _timer.Start();

        }

     

        public static void Broadcast()

        {

            _messageIndex = (_messageIndex + 1) % _messages.Length;

            _clients.All.showMessage(_messages[_messageIndex]);

        }

    }

     

    客户端:

     

    $(document).ready(function () {

        var messagesHub = $.connection.messagesHub;

     

        messagesHub.client.showMessage = function (msg) {

            $('#footer').text(msg);

        };

     

        $.connection.hub.start();

    });

  • 相关阅读:
    MongoDB 处理jumbo chunks警告信息
    MongoDB 3.0挂起原因? WiredTiger实现:一个LRU cache深坑引发的分析
    python3中字符串、整数互转以及转二进制(MAC地址IP地址转二进制方法)
    MongoDB 批量插入避免唯一值重复停掉问题
    MongoDB 3.6用户白名单(转载)
    MongoDB中WiredTiger的数据可用性设置
    Mongodb 新版配置文件详解(转载)
    MongoDB 启动后告警
    MongoDB 安装部署需求(官方文档)
    golang中defer的些许总结
  • 原文地址:https://www.cnblogs.com/luanshixia/p/3243172.html
Copyright © 2011-2022 走看看