一、SignalR入门

准备:

开发工具:visual studio 2013

使用框架:SignalR、Jquery

正文

  • 概述

    基于ASP.NET web 应用程序创建并引用SignalR 和JQuery框架简单实现文字聊天

  • 
    

开发任务

A、创建一个空的ASP.NET web 项目

B、引用SignalR 和Jquery框架

C、创建一个集线器类,以将内容推送到客户端。

D、创建一个OWIN Startup类,配置启动。

E、在Web中使用SignalR jQuery实现消息的收发。

    效果图展示:

  • 开发步骤

1、在 Visual Studio 中创建一个 ASP.NET Web 应用程序。

2、在解决方案资源管理器中,右键单击项目,选择添加|那么 SignalR 集线器类 (v2)。命名ChatHub.cs类并将其添加到该项目。此步骤将创建ChatHub类,并向项目中添加一组脚本文件和支持那么 SignalR 的程序集引用。

3、将ChatHub类替换如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;

namespace SignalRChatDemo
{
    public class ChatHub : Hub
    {
        /// <summary>
        /// 发送消息
        /// </summary>
        /// <param name="name">姓名</param>
        /// <param name="message">消息内容</param>
        public void Send(string name, string message)
        {
            // 回调客户端方法CallMessage通知客户端
            Clients.All.CallMessage(name, message);
        }
    }
}

4、在解决方案资源管理器中,右键单击该项目,然后单击添加OWIN Startup启动类Startup新类的名称并单击确定。

注:如果您使用的 Visual Studio 2012,OWIN Startup启动类模板将不可用。您可以添加一个名为Startup相反的普通

5、更改为以下内容的新的启动类。

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(SignalRChatDemo.Startup))]

namespace SignalRChatDemo
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
            app.MapSignalR();
        }
    }
}

6、引用SignalR 和Jquery框架

在NuGet管理中输入JqueryUI ,安装JQuery UI库,如下图:

安装完成后可以看到我们需要的两个框架库了,如下图:

7、编写Web页面,实现聊天

<!DOCTYPE html>
<html>
<head>
    <title>SignalR Simple Chat</title>
    <style type="text/css">
        .container {
            background-color: #07325e;
            border: thick solid #808080;
            padding: 20px;
            margin: 20px;
        }
        body{
            color:white;
        }
    </style>
</head>
<body>
    <div class="container">
        <input type="text" id="message" />
        <input type="button" id="sendmessage" value="发送" />
        <input type="hidden" id="name" />
        <ul id="msgList"></ul>
    </div>
    <script src="Scripts/jquery-1.10.2.min.js"></script>
    <script src="Scripts/jquery.signalR-2.1.2.min.js"></script>
    <script src="signalr/hubs"></script>
    <script type="text/javascript">
        $(function () {
            // 定义一个代理并引用Hub。注意:JS需要使用驼峰式大小写
            var chat = $.connection.chatHub;
            // 创建一个客户端方法,C# ChatHub类中的方法需要和客户端方法保持一致,C# ChatHub类才能调用到客户端方法
            chat.client.CallMessage = function (name, message) {
                // 对HTML进行编码.
                var encodedName = $(‘<div />‘).text(name).html();
                var encodedMsg = $(‘<div />‘).text(message).html();
                $(‘#msgList‘).append(‘<li><B>‘ + encodedName
                    + ‘</B>:&nbsp;&nbsp;‘ + encodedMsg + ‘</li>‘);
            };
            // 输入需要在客户端显示的用户名
            $(‘#name‘).val(prompt(‘亲输入的您的姓名:‘, ‘‘));
            $(‘#message‘).focus();
            // 启动一个连接
            $.connection.hub.start().done(function () {
                $(‘#sendmessage‘).click(function () {
                    // 回调服务的的send方法并传入参数
                    chat.server.send($(‘#name‘).val(), $(‘#message‘).val());
                    $(‘#message‘).val(‘‘).focus();
                });
            });
        });
    </script>
</body>
</html>

源码下载

时间: 2024-10-21 02:45:52

一、SignalR入门的相关文章

ASP.NET SignalR入门

前言 之前在培训ASP.NET WebAPI的时候有提过SignalR这个技术,但当时只是讲了是用来做什么的,并没有多说.因为自己也是画图找资料的时候见到的.后来当一直关注的前端大神贤心发布LayIM2.0之后,于是对Web聊天产生了兴趣.那么在.NET平台下的Web聊天有哪些呢?查找资料发现了ASP.NET SignalR.于是乎...So...Just do it! 简介 按照惯例,先介绍一下什么是SignalR.简单的说,ASP .NET SignalR 是一个ASP .NET 下的类库,

SignalR入门之持久性连接

为了保持客户端和服务端之间的持久性连接的开发性,并且使用传输在这这样的连接上发送数据,这个用来访问SignalR持久性连接的底层API提供了一个隐藏底层固有复杂性的抽象层. 事实上,通过该API访问通信通道和在底层使用Socket方式类似: 在服务端,当连接打开或关闭.接受数据.给客户端发送信息时我们将被通知.在客户端,我们可以打开或关闭连接,发送或接受任何数据.与Socket一样,消息没有格式,可以说它的格式是传统数据格式——文本字符串. 从客户端来看,只需要发起一个到服务端的连接就可以立即使

SignalR入门之多平台SignalR服务端

之前创建SignalR服务端是基于Web应用程序而言的.那么能不能把SignalR服务端做成控制台应用程序.Winform或windows服务呢? 答案是肯定的. 之前尽管看起来好像是IIS和ASP.Net构成托管SignalR服务的唯一环境,但事实上并非如此,很多情况下采用的并非是IIS和ASP.NET. 现在,在这里以控制台程序为例,将SignalR服务端建立在控制台程序里. 如何在控制台程序实现基于Hub或持久性连接的SignalR服务呢,首先安装下面的包: install-package

SignalR入门篇

一,简介 Signal 是微软支持的一个运行在 Dot NET 平台上的 html websocket 框架.它出现的主要目的是实现服务器主动推送(Push)消息到客户端页面,这样客户端就不必重新发送请求或使用轮询技术来获取消息. 可访问其官方网站:https://github.com/SignalR/ 获取更多资讯. 二,实现机制 SignalR 的实现机制与 .NET WCF 或 Remoting 是相似的,都是使用远程代理来实现.在具体使用上,有两种不同目的的接口:PersistentCo

SignalR入门

一:什么是signalR Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,signalR会使用JavaScript的长轮询(long polling)的方式来实现客户端和服务器通信,随着Html5中WebSockets出现,SignalR也支持WebSockets通信.另外SignalR开发的程序不仅仅限制于宿主在IIS中,也可以宿主在任何应用程序,包括控制台,客户端程序和Windows服务等,另外还支持Mono,这意味着它可以实现跨平台部署在Linux环境下. Sig

快速了解SignalR—在MVA微软虚拟学院学习SignalR

©版权声明:本文为博主原创文章,如需转载请注明出处. SignalR把实时Web功能变得异常简单. 如果您希望在几个小时内对SignalR有一个直观的了解,观看微软虚拟学院(MVA)的视频教学Lighting Up Real-Time Web Communications with SignalR或许是个不错的选择. 这是一个大概四个小时的视频教学,分为五个部分.除了视频,还配有PPT和小测验.视频是英文的,配有英文字幕.通过这几个小时的学习,您将对SignalR的功能以及如何使用有一个初步的了

SignalR 目录

目录: 1.SignalR入门

SignalR系列教程:SignalR快速入门

---恢复内容开始--- 本篇是SignalR系列教程的第一篇,本篇内容介绍了如何创建SignalR应用,如何利用SignalR搭建简易的聊天室等,本篇内容参考自:http://www.asp.net/signalr/overview/older-versions/tutorial-getting-started-with-signalr,文中会有我对实例代码的一些理解. 首先我们创建ASP.NET空程序,并使用“程序包管理控制台”执行“Install-PackAge Microsoft.Asp

SignalR 2.1 简单入门项目(一)

概述 SignalR是通讯框架,前台Web页面与后台服务实现数据的交互.ASP.NET SignalR 是一个为 ASP.NET 开发人员的库,简化了将实时 web 功能添加到应用程序的过程.实时Web功能使服务端代码推送内容到链接可客服端并立即应用成为可能,而不需要服务端等待客户端去请求数据. SignalR可用于任何你想添加实时Web功能到ASP.NET应用程序的情形,聊天室是一个常用的例子,用户可以刷新Web页面来获得新的数据,或者页面使用一个长轮询来取回数据,这都是SignalR可以应用