SignalR 2.x入门(一):SignalR简单例子

简介: SignalR 2.x入门(一):SignalR简单例子

1.本系列教程使用工具


  1. 开发工具:VS2015
    .NET版本:4.5
    SignalR 版本:2.x系列

2.开发(点击下载源码


  1. 创建空Asp.Net Web项目,在程序包管理器控制台中
install-package Microsoft.AspNet.SignalR
  1. 输入如下命令,安装Signal在项目中右击,选择添加|SignalR Hub Class(V2),命名为“ChatHub”,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;
namespace SignalRChat
{
    public class ChatHub : Hub
    {
        public void Send(string name,string message)
        {
            Clients.All.broadcastMessage(name, message);
        }
    }
}

在项目中右击,选择添加|OWIN Startup类,命名为“Startup”,代码如下

using System;
using System.Threading.Tasks;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
            app.MapSignalR();
        }
    }
}

在项目中添加html页面,命名为“index.html”,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>SignalR Simple Chat</title>
  <meta charset="utf-8" />
    <style type="text/css">
        .container{
            background-color:#99CCFF;
            border:thick solid #808080;
            padding:20px;
            margin:20px;
        }
    </style>
</head>
<body>
    <div class="container">
        <input type="text" id="message" />
        <input type="button" id="sendmessage" value="send" />
        <input type="hidden" id="displayname"/>
        <ul id="discussion">
        </ul>
    </div>
    <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>
        $(function () {
            //声明hub代理
            var chat = $.connection.chatHub;
            //创建hub调用的broadcast函数
            chat.client.broadcastMessage = function (name, message) {
                //获得发送人的名字和消息
                var encodedName = $('<div/>').text(name).html();
                var encodedMsg = $('<div/>').text(message).html();
                //将接收的信息添加到页面上
                $('#discussion').append('<li><strong>' + encodedName
                    + '</strong>:  '+encodedMsg+'</li>');
            };
            //获得当前用户的名字
            $('#displayname').val(prompt('Enter your name:', ''));
            //将焦点设置在信息框
            $('#message').focus();
            //启动链接
            $.connection.hub.start().done(function () {
                $('#sendmessage').click(function () {
                    //调用hub的Send方法
                    chat.server.send($('#displayname').val(), $('#message').val());
                    //清理输入框,并将焦点重新设置在输入框中
                    $('#message').val('').focus();
                });
            });
        });
    </script>
</body>
</html>

运行,程序,效果如下图,到此为止一个简单的SignalR程序完成了。

1.png

目录
相关文章
|
SQL 存储 JSON
EarthChat SignalR原理讲解
EarthChat SignalR原理讲解
114 3
EarthChat SignalR原理讲解
|
存储 开发框架 JavaScript
『SignalR』.NET使用 SignalR 进行实时通信初体验
📣读完这篇文章里你能收获到 - 你将对SignalR有了初步的认识及体会 - 对于哪些场景适用SignalR以及如何接入使用 - SignalR的代码入门级Demo实际案例
602 0
『SignalR』.NET使用 SignalR 进行实时通信初体验
|
JavaScript C#
SignalR的简单使用(二)
原文:SignalR的简单使用(二)   之前提到SignalR代理在网页,通过生成的Js来完成相关的功能。但我不禁想一个问题, 难到SignalR的服务端就能寄存在web端吗,通过访问网页能方式才能启动服务,还有客户端 也只能在web端吗?经过看官网的教程得到 了结论,两者的答案都是否定的。
1176 0
|
JavaScript 前端开发 .NET
SignalR
原址: http://www.cnblogs.com/shanyou/archive/2012/07/28/2613693.html SignalR是什么?     SignalR是一个继承的客户端与服务器库,基于浏览器的客户端和基于ASP.NET的服务器组件可以借助它来进行双向多步对话,换句话说,该对话可不受限制的进行单个无状态请求/响应数据交换;它将继续,直到明确关闭。
1126 0
|
JavaScript .NET 开发框架
SignalR的简单实现(一)
原文:SignalR的简单实现(一)    ASP.NET SignalR是ASP.NET开发人员的一个新库,它使您的应用程序添加实时Web功能变得非常简单。什么是“实时网络”功能?能够实时地将服务器端代码推送到连接的客户端的能力。
1354 0
|
JavaScript
SignalR简单Demo
  我们实现一个简单的消息通知的Demo    在NuGet中添加SignalR引用 install-package Microsoft.AspNet.SignalR  然后我们创建一个类来引用Hub类 namespace SignalRDemo.
1286 0