SignalR Self Host多端訊息推送服務介紹(二)

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了SignalR Self Host+MVC等多端訊息推送服務的第二篇,具有一定的參考價值,感興趣的小夥伴們可以參考一下

一、概述

上次的文章中我們簡單的實現了SignalR自託管的服務端,今天我們來實現控制台程式調用SignalR服務端來實現推送資訊,由於之前我們是打算做審批訊息推送,所以我們的demo方向是做指定人發送資訊,至於做聊天訊息和全域廣播,這裡就不在進行示範了。

二、建立控制台用戶端

1、在SignalRProject解決方案下建立一個名為Clinet的控制台

2、在程式包管理主控台中輸入以下命令


Install-Package Microsoft.AspNet.SignalR.Client

3、修改Clinet項目中的Program.cs代碼


using Microsoft.AspNet.SignalR.Client;using System;namespace Clinet{  class Program  {    static void Main(string[] args)    {      Console.Write("請輸入使用者名稱: ");      string clientName = Console.ReadLine();      var url = "http://localhost:10086/";      var connection = new HubConnection(url);      var chatHub = connection.CreateHubProxy("IMHub");            connection.Start().ContinueWith(t =>      {        if (!t.IsFaulted)        {          //串連成功,調用Register方法          chatHub.Invoke("Register", clientName);        }      });      //用戶端接收實現,可以用js,也可以用後端接收      var broadcastHandler = chatHub.On<string, string>("receivePrivateMessage", (name, message) =>      {        Console.WriteLine("[{0}]{1}: {2}", DateTime.Now.ToString("HH:mm:ss"), name, message);      });      Console.WriteLine("請輸入接收者名:");      var _name = Console.ReadLine();      Console.WriteLine("請輸入發送資訊!");      while (true)      {        var _message = Console.ReadLine();        chatHub.Invoke("SendPrivateMessage", _name, _message).ContinueWith(t =>        {          if (t.IsFaulted)          {            Console.WriteLine("串連失敗!");          }        });        Console.WriteLine("請輸入接收者名:");        _name = Console.ReadLine();        Console.WriteLine("請輸入發送資訊!");      }    }  }}

4、按右鍵解決方案——>選擇屬性——>啟動項目——>多啟動項目——>將Clinet和Server設定為啟動,如下:

5、F5運行後,再開一個Clinet,在第一個Client中輸入使用者名稱為a,登入後Server中顯示出登入a的ID,在另一個Clinet中輸入使用者名稱為b,登入後Server中顯示出登入b的ID,然後根據提示資訊,a Clinet中輸入接收資訊的人為b,輸入hello後按Enter後,b Client顯示出了a輸入的資訊,如:

自此控制台調用SignalR服務端,實現訊息推送的Demo就完成了,今天先寫到這,下一章我們實現B/S端調用SignalR服務來推送訊息

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.