当前位置: 首页 > news >正文

Asp.net MVC4 + signalR 聊天室实现

之前介绍了ServiceBus + SignalR的聊天室设计:
http://blog.csdn.net/lan_liang/article/details/46480529


如果还没有Azure账号,可以先完成SignalR的实现,这个例子容易上手一些。

如果要了解Service Bus,可以参照这里:

https://azure.microsoft.com/en-gb/documentation/articles/service-bus-dotnet-how-to-use-queues/


这篇是介绍Service Bus queue(1个订阅者)的,看完了可以了解一下Service Bus Topic(多个订阅者),语法大同小异:

https://azure.microsoft.com/en-gb/documentation/articles/service-bus-dotnet-how-to-use-topics-subscriptions/




1. VIEW的代码:

@{
    ViewBag.Title = "Signal R test";
}
<h2>Messages</h2>
<div class="container">
    <ul id="messages"></ul>
</div>


<div>
    Name : <input type="text" class="name"/>
</div>


<div>
    <input type="text" class="msg"/> <input type="button" value="send" class="send-btn"/>
</div>


@section scripts {
    <!--Script references. -->
    <!--The jQuery library is required and is referenced by default in _Layout.cshtml. -->
    <!--Reference the SignalR library. -->
    <script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
    <!--Reference the autogenerated SignalR hub script. -->
    <script src="~/signalr/hubs"></script>
    <!--SignalR script to update the chat page and send messages.-->
    <script>


        $(function () {
            // Reference the auto-generated proxy for the hub.
            var proxy = $.connection.serverTimeHub;
            // Create a function that the hub can call back to display messages.
            proxy.client.broadcastMessage = function (name, message) {
                // Add the message to the page.
                $('#messages').append('<li>' + name+" says: " + '</li>');
                $('#messages').append('<li>' + htmlEncode(message) + '</li>');
            };


            $(".send-btn").click(function() {
                proxy.server.send($(".name").val(), $(".msg").val());
            });


            // Start the connection.
            $.connection.hub.start();
        });


        // This optional function html-encodes messages for display in the page.
        function htmlEncode(value) {
            var encodedValue = $('<div />').text(value).html();
            return encodedValue;
        }
    </script>
}  




2. 创建Hubs文件夹,添加hub类:


public class ServerTimeHub : Hub
    {
        public void Send(string name, string msg)
        {
            Clients.All.broadcastMessage(name, msg);
        }

    }  




3. Startup.Auth(或Global) 中完成Map:


 app.MapSignalR();


相关文章:

  • JSF的国际化
  • javascript 替换浏览器Tab的title实现消息通知提示
  • 很好很强大 中移动OMS开源操作系统使用感想
  • [Windows编程] 获取系统CPU 个数
  • 算法练习之DP 求LCM (最长公共子序列)
  • C#中的特性Attribute
  • 算法练习 -- DP 查找和为指定数字的数组
  • 2009英雄会后记:最出彩是创业 最关注是产品 最可惜是创富
  • 算法练习--- DP 求解最长上升子序列(LIS)
  • Bellman ford 最短路径算法
  • ArcGIS Server Java ADF 案例教程 14
  • 扩展MongoDB C# Driver的QueryBuilder
  • ArcGIS Server Java ADF 案例教程 15
  • Floyd-Warshall 算法-- 最短路径(适合节点密集的图)
  • 英雄会创业论坛梁宁主持手记-初创业2人,天才少年2人,成功2人
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • Docker下部署自己的LNMP工作环境
  • JavaWeb(学习笔记二)
  • Mysql5.6主从复制
  • SpringBoot 实战 (三) | 配置文件详解
  • vue2.0项目引入element-ui
  • 关于extract.autodesk.io的一些说明
  • 基于axios的vue插件,让http请求更简单
  • 基于游标的分页接口实现
  • 聊聊flink的TableFactory
  • 前端攻城师
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深入浅出webpack学习(1)--核心概念
  • elasticsearch-head插件安装
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 说说我为什么看好Spring Cloud Alibaba
  • ​ArcGIS Pro 如何批量删除字段
  • (09)Hive——CTE 公共表达式
  • (1)STL算法之遍历容器
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (六)软件测试分工
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)setTimeout 和 setInterval 的区别
  • (转)详解PHP处理密码的几种方式
  • (转载)hibernate缓存
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .a文件和.so文件
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 中的路径问题
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Remoting学习笔记(三)信道
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本