SignalR Self Host+MVC等多端消息推送服務(wù)(二)
一、概述
上次的文章中我們簡單的實現(xiàn)了SignalR自托管的服務(wù)端,今天我們來實現(xiàn)控制臺程序調(diào)用SignalR服務(wù)端來實現(xiàn)推送信息,由于之前我們是打算做審批消息推送,所以我們的demo方向是做指定人發(fā)送信息,至于做聊天消息和全局廣播,這里就不在進行演示了。
二、創(chuàng)建控制臺客戶端
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)
{
//連接成功,調(diào)用Register方法
chatHub.Invoke("Register", clientName);
}
});
//客戶端接收實現(xiàn),可以用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("請輸入發(fā)送信息!");
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("請輸入發(fā)送信息!");
}
}
}
}

4、右鍵單擊解決方案——>選擇屬性——>啟動項目——>多啟動項目——>將Clinet和Server設(shè)置為啟動,如下:

5、F5運行后,再開一個Clinet,在第一個Client中輸入用戶名為a,登錄后Server中顯示出登錄a的ID,在另一個Clinet中輸入用戶名為b,登錄后Server中顯示出登錄b的ID,然后根據(jù)提示信息,a Clinet中輸入接收信息的人為b,輸入hello后按Enter后,b Client顯示出了a輸入的信息,如下圖:

自此控制臺調(diào)用SignalR服務(wù)端,實現(xiàn)消息推送的Demo就完成了,今天先寫到這,下一章我們實現(xiàn)B/S端調(diào)用SignalR服務(wù)來推送消息
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu16.04系統(tǒng)搭建.Net Core開發(fā)環(huán)境
本文詳細講解了Ubuntu系統(tǒng)搭建.Net Core開發(fā)環(huán)境的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
asp.net Excel轉(zhuǎn)換為SQL Server的方法
辦公軟件Excel是一種常用的電子表格軟件,在編程項目中有需要將Excel轉(zhuǎn)換為SQL Server數(shù)據(jù)庫的需求,本文對此進行一些介紹并給出設(shè)計代碼。2009-06-06
c# 操作符?? null coalescing operator
?? "null coalescing" operator 是c#新提供的一個操作符,這個操作符提供的功能是判斷左側(cè)的操作數(shù)是否是null,如果是則返回結(jié)果是右側(cè)的操作數(shù);非null則返回左側(cè)的操作數(shù)。2009-06-06
asp.net訪問網(wǎng)絡(luò)路徑方法(模擬用戶登錄)
這篇文章主要介紹了asp.net訪問網(wǎng)絡(luò)路徑方法,其實就是模擬用戶登錄,需要的朋友可以參考下2014-08-08
MVC+EasyUI+三層架構(gòu)簡單權(quán)限管理系統(tǒng)
這篇文章主要為大家詳細介紹了MVC+EasyUI+三層架構(gòu)簡單權(quán)限管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-07-07
ASP.NET MVC結(jié)合JavaScript登錄、校驗和加密
這篇文章主要為大家詳細介紹了ASP.NET MVC結(jié)合JavaScript登錄、校驗和加密的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-08-08

