1. 程式人生 > >SignalR 2.x入門(一):SignalR簡單例子

SignalR 2.x入門(一):SignalR簡單例子

  1. 本系列教程使用工具

    開發工具:VS2015
    .NET版本:4.5
    SignalR 版本:2.x系列

  2. 建立空Asp.Net Web專案,在程式包管理器控制檯中輸入如下命令,安裝SignalR:

    install-package Microsoft.AspNet.SignalR

    在專案中右擊,選擇新增|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程式完成了。

相關推薦

SignalR 2.x入門SignalR簡單例子

本系列教程使用工具 開發工具:VS2015 .NET版本:4.5 SignalR 版本:2.x系列 建立空Asp.Net Web專案,在程式包管理器控制檯中輸入如下命令,安裝SignalR: install-package Microsoft.AspNet.Signa

Netty入門零基礎“HelloWorld”詳細圖文步驟

-a 多線程 obj chan blog 接口文檔 syn 幫助 final 因為接下來的項目要用到netty,所以就了解一下這個程序,奈何網上的教程都是稍微有點基礎的,所以,就寫一篇對於netty零基礎的,順便也記錄一下。 先扔幾個參考學習的網頁: netty 官方

UWP 使用OneDrive雲存儲2.x api【全網首發】

既然 現在 rest 方式 exist 開源 體驗 clas 下載地址 最近開發人臉識別UWP【微識別 / WeRecognition】用到了OneDrive開發,下面把來龍去脈講一下。 下載地址 https://www.microsoft.com/store/produc

Java入門Hello World !

公司 java入門(一) 擁有 sys 成熟 pos pac runt asc 前言 從今天開始,準備寫Java Web開發的系列文章,畢竟自己主攻的還是Java方向,Python只是業余學習的興趣使然,在第二技能還沒有培養成熟前,做好第一技能的鞏固和提高是很有必要的。從正

性能測試入門性能測試中的各項指標告訴我們什麽

並不是 速度 阿裏 機制 找到 客戶 測試過程 著名 HP 性能測試 性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。 按照不同的目標,可以分為負載測試、壓力測試、容量測試、穩定性測試。平時工作中如果不是專業的測試機構,開

學習筆記版Hadoop入門Hadoop2.7.3完全分布式集群安裝

min property per cal mon 分別是 master 修改 node 在這裏寫下安裝hadoop2.7.3版本的完全分布式的過程,因為剛開始學習hadoop不久,希望自己把學習的東西記錄下來,和大家一起分享,可能有錯誤的地方,還請大牛們批評指正,在我學習的

新手入門 git 以及 github 的基本使用建立及克隆專案

概念 git: 是一個輔助我們開發的工具,在開發的過程中記錄我們每次提交程式碼的相關內容,比如誰在什麼時候修改或者新增了什麼功能等等,通過git 可以對我們的程式碼進行管理,也能借助git 將之前上傳的專案克隆到本地 github: 一個網站,上面有很多的開源專案,可以供我們下載原始

Rxjava 2.x筆記

這麼火的框架,現在才開始學,實在是有點落伍(太落伍)了。因為2.x是獨立於1.x的存在,所以為了儘快趕上時代潮流,本文基於2.x版本,整理一下學習中2.x的知識。因為是做筆記,所以肯定要參考大神的部落格了。(當然,其中的程式碼咱會先敲一遍再貼上的,原來是用筆記本打筆記,當然查詢的時候又不好查

Python爬蟲編寫簡單爬蟲之新手入門

最近學習了一下python的基礎知識,大家一般對“爬蟲”這個詞,一聽就比較熟悉,都知道是爬一些網站上的資料,然後做一些操作整理,得到人們想要的資料,但是怎麼寫一個爬蟲程式程式碼呢?相信很多人是不會的,今天寫一個針對新手入門想要學習爬蟲的文章,希望對想要學習的你能有所幫助~~廢話不多說,進入正文!

人工智慧入門Fundamentals of Artificial Intelligence

參考教材:https://people.cs.kuleuven.be/~danny.deschreye/FAI/ 在FAI的introduction課中,有一個很基本的目標是:實現一個可以通過圖靈測試的chatbox。 主要知識點涉及: 1.搜尋演算法:包括basic search(blind,heur

人工智能入門Fundamentals of Artificial Intelligence

博弈 trac 一個 chat const esc 構建 人工智 constrain 參考教材:https://people.cs.kuleuven.be/~danny.deschreye/FAI/ 在FAI的introduction課中,有一個很基本的目標是:實現一個可以

SpringBoot 2.1.0 HelloWorld

簡介 本系列基於Spring Boot 2.1.0 的官方文件,除去了文件中一些冗餘的東西,加上了一些自己的理解,意圖是在於幫助更多初識Spring Boot的人來進行一次探險。 本系列建議具有Java基礎和Spring使用經驗的同學學習。 什麼是Spring Boot

GitHub使用入門用Git來訪問GitHub

GitHub是為開發者提供的Git倉庫的託管服務。這是一個讓開發者與朋友、同事、同學以及陌生人共享程式碼的完美場所。更多的地方我就不贅述了,總之。GitHub很棒,很棒,上面有很多神奇的程式碼和專案。 我們從這一期開始GitHub入門教程,教你如何使用GitH

Springboot 入門入門案例

Springboot 入門 入門案例 建立spring boot專案 在pom.xml 檔案,我們需要新增兩部分依賴。 — 讓我們的專案繼承spring-boot-starter-parent 的工程 — 加入spring-boot-starter-web 的

SpringBoot2.x入門[HelloWorld程式]

雲盤地址(版本為17版本) 連結:https://pan.baidu.com/s/1dOxiPSaJGnlLoY73FhXZvw  提取碼:m3mm  使用idea:file-->new-->project 選擇:spring Assistant

NIO入門快速瞭解NIO

  1.Java NIO: Non-blocking IO(非阻塞IO)(1)java NIO可以非阻塞的使用IO (例如:當執行緒從通道讀取資料到緩衝區時,執行緒還是可以進行其他事情。)(2)NIO和IO有相同的作用和目的,但實現方式不同  IO     面向流&n

NIO入門快速了解NIO

標準輸入 使用 sel ont 監聽 輸入輸出 多個 spa 目的 1.Java NIO: Non-blocking IO(非阻塞IO)(1)java NIO可以非阻塞的使用IO (例如:當線程從通道讀取數據到緩沖區時,線程還是可以進行其他事情。)(2)NIO和IO有相

githubdesktop入門入門及單人專案建立及刪除

一、準備工作 1.1 註冊Github賬號 這個安裝包直接剪下掉,放到你想安裝到的資料夾裡就好,第一次執行他自己會搞定。 1.3 登陸並調整你的郵箱、名稱等 二、功能介紹 2.1建立倉庫 首先我們

Netty 入門基本元件與執行緒模型

  Netty 的學習內容主要是圍繞 TCP 和 Java NIO 這兩個點展開的,後文中所有的內容如果沒有特殊說明,那麼所指的內容都是與這兩點相關的。由於 Netty 是基於 Java NIO 的 API 之上構建的網路通訊框架,Java NIO 中的幾個元件,都能在 Netty 中找到對應的封裝。下面我們

效能測試入門效能測試中的各項指標告訴我們什麼

效能測試 效能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。 按照不同的目標,可以分為負載測試、壓力測試、容量測試、穩定性測試。平時工作中如果不是專業的測試機構,開發人員或者運維人員做的基本上都屬於壓測。