SignalR 2.1 简单入门项目(一)

概述

  SignalR是通讯框架,前台Web页面与后台服务实现数据的交互。ASP.NET SignalR 是一个为 ASP.NET 开发人员的库,简化了将实时 web 功能添加到应用程序的过程。实时Web功能使服务端代码推送内容到链接可客服端并立即应用成为可能,而不需要服务端等待客户端去请求数据。

  SignalR可用于任何你想添加实时Web功能到ASP.NET应用程序的情形,聊天室是一个常用的例子,用户可以刷新Web页面来获得新的数据,或者页面使用一个长轮询来取回数据,这都是SignalR可以应用的场景。比如说仪表盘和监视系统,实时游戏等。

  SignalR支持以一种简单的API来创建服务器到客户端的远程调用客户端的Javascript方法,SignalR还包括用于用于连接管理的API和分组连接。

创建项目:

第一步:创建简单的Web Form项目,通过NuGet安装Microsoft.AspNet.SignalR组件。

第二步:添加OWIN Startup类,并修改映射内容。

修改内容如下:

namespace SignalRCapter01
{
    public class SRStartup
    {
        public void Configuration(IAppBuilder app)
        {
            // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
            // Maps SignalR hubs to the app builder pipeline at "/signalr".
            app.MapSignalR();
        }
    }
}

第三步:添加Hub类,并修改代码内容。

修改内容如下:

  [HubName("MsgChat")]
    public class MyHub : Hub
    {
        public void sendMess(string Msg)
        {
            Clients.All.BroadMsg(string.Format("消息接收时间:{0},内容:{1}",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),Msg));
        }
    }
}

第四步:修改WebForm JS内容。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ChatHome.aspx.cs" Inherits="SignalRCapter01.ChatHome" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>MSG</title>
    <link rel="shortcut icon" href="/favicon.ico"/>
    <link rel="bookmark" href="/favicon.ico"/>
    <script src="Scripts/jquery-1.6.4.min.js"></script>
    <script src="Scripts/jquery.signalR-2.2.1.min.js"></script>
    <script src="signalr/hubs"></script>
    <script type="text/javascript">
        $(function () {
            // 声明一个代理引用该集线器,记得$.connection.后面的方法首字母必须要小写,这也是我为什么使用别名的原因
            var chat = $.connection.MsgChat;
            // 这里是注册集线器调用的方法,和1.0不同的是需要chat.client后注册,1.0则不需要
            chat.client.BroadMsg = function (name) {
                // HTML编码的显示名称和消息。
                var encodedMsg = $(‘<div />‘).text(name).html();
                // 将消息添加到该页。
                $(‘#messsagebox‘).append(‘<li>‘ + encodedMsg + ‘</li>‘);
            };
            // 获取用户名称。
            $(‘#username‘).html(prompt(‘请输入您的名称:‘, ‘‘));
            // 设置初始焦点到消息输入框。
            $(‘#message‘).focus();

            // 启动连接,这里和1.0也有区别
            $.connection.hub.start().done(function () {
                $(‘#send‘).click(function () {
                    var message = $(‘#username‘).html() + ":" + $(‘#message‘).val()
                    // 这里是调用服务器的方法,同样,首字母小写
                    chat.server.sendMess(message);
                    // 清空输入框的文字并给焦点.
                    $(‘#message‘).val(‘‘).focus();
                });
            });
        });
    </script>
</head>

<body>
    <div>
        <div >名称:<p id="username"></p></div>
        <div style="border-color:red;border:double">
            <ul id="messsagebox">
                <li>聊天窗口</li>
                <li></li>
            </ul>
        </div>
        <input type="text" value="" placeholder="请输入消息" id="message" />
        <button id="send">发送</button>
    </div>
</body>
</html>

知识总结

1、Hub Server端的方法首字母必须小写,否则客户端提示找不到方法;

2、Js初始化的时候,要和后台服务别名一致;

var chat = $.connection.MsgChat;
时间: 2024-08-09 02:20:31

SignalR 2.1 简单入门项目(一)的相关文章

用IntelliJ IDEA创建Gradle项目简单入门

原文链接:http://www.cnblogs.com/guogangj/p/5465740.html Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都有,且看起来更漂亮,咱么就用起来吧. 装好Intellij IDEA之后,Gradle也就默认装好了,现在我们仅需直接创建工程: 当然选择Java了,Next: GroupId,ArtifactI

Django入门第一步(安装和创建一个简单的项目)

目录 Django入门第一步(安装和创建一个简单的项目) 一. Django项目目录结构 二.注意事项 三.Django安装 3.1.安装命令 3.2.验证django是否安装成功 3.3.使用方法 Django入门第一步(安装和创建一个简单的项目) 在使用Django框架开发web应用程序时,开发阶段同样依赖wsgiref模块来实现Server的功能,我们使用Django框架是为了快速地开发application. 如果使用的是我们自定义的框架来开发web应用,需要事先生成框架包含的一系列基础

程序员,一起玩转GitHub版本控制,超简单入门教程 干货2

本GitHub教程旨在能够帮助大家快速入门学习使用GitHub,进行版本控制.帮助大家摆脱命令行工具,简单快速的使用GitHub. 做全栈攻城狮-写代码也要读书,爱全栈,更爱生活. 更多原创教程请关注头条号.每日更新.也可以添加小编微信:fullstackCourse.一起交流,获取最新全栈教程信息.因为FQ原因,不能下载客户端的同仁,可以关注后回复“GitHub客户端”获取安装软件. 上篇教程:GitHub这么火,程序员你不学学吗? 超简单入门教程 干货 GitHub概念部分出现了一丝纰漏.为

iBatis简单入门教程

iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足你的要求又足够灵活的最简单的解决方案,现在的iBatis 已经改名为Mybatis 了. 官网为:http://www.mybatis.org/ 搭建iBatis 开发环境: 1 .导入相关的jar 包,ibatis-2.3.0.677.jar .mysql-connector-java-5.1.6

Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门

出处:http://www.cnblogs.com/SeeYouBug/p/6401737.html 一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数据的操作的一个封转.可以分为视图模型(view model)和领域模型(domain models),视图模型就是在视图与控制器之间传输数据的一个封转,而领域模型就是业务逻辑,后台数据模型等的一个集

SpringMVC_入门项目

本项目是SpringMVC的入门项目,用于演示SpringMVC的项目配置.各层结构,功能较简单 一.Eclipse中创建maven项目 二.pom.xml添加依赖 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 <dependency>     <groupId>javax.servlet</groupId>     <artifactI

windows简单入门(1)

1.1 windows系统的关机 退出所有正在运行的程序,然后点击"关闭计算机"键关机,下面是"关闭计算机"的操作方法:                    图1-2 图1-1 1.2鼠标的操作 ① 鼠标指向一个图标 操作:移动鼠标,将其指针放到屏幕上某一对象上或位置 举例:将鼠标指针从屏幕中的某一处移动到"我的电脑"上,这样就指向了"我的电脑". ② 单击鼠标 操作:将鼠标指向某一对象后,快速按一下鼠标左键,并立即释放,这

【转】Asp.Net MVC3 简单入门详解过滤器Filter

原文地址:http://www.cnblogs.com/boruipower/archive/2012/11/18/2775924.html 前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了. 在Asp.net Mvc

Asp.Net MVC3 简单入门第一季(一)环境准备

前言 大家好,从今天开始我将写一个关于AspNet MVC3方 面学习的总结,并跟初学者一起分享一些基本的基础知识,作者本身也很愿意跟大家一起交流技术,一起交流一起进步,欢迎高手不吝赐教,欢迎大家不同的意见和 建议,作者的学识和见识当然有自己的局限性,希望自己能成为不闷骚型的技术人员,而不是只自己享受技术,而不让更多的人来分享你的成果的人. 第一节:关于Asp.Net MVC3 Asp.Net MVC已经到第三版了,相信大家也都熟悉了,我也不再重复相关概念性的东西了.但是大家一定要了解,Asp.