阳光总在风雨后伴奏,合肥一中最后一卷,化疗脱发
一、概述
上次的文章中我们简单的实现了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服务来推送消息
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论