热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Signal第一个简单Demo

最简单的聊天室功能1.用VS2013创建一个MVC4(MVC5也类似)项目1.1选择模板为基本2.用NuGet安装SignalR3安装完成,

 

 

 

最简单的聊天室功能

1.用 VS 2013 创建一个 MVC 4 (MVC 5 也类似)项目

 

1.1 选择模板为 基本

2.用 NuGet 安装 SignalR

 

3安装完成,我们来添加一个叫 MyHub 的文件夹,往里面添加一个 SignalR 集线器(V2),名字为 MyChatHub

3.1 我们自定义一下我们自己的发送消息的方法名 Send:(等会用来群发送消息)

4 创建一个 HomeController ,用 ViewBab保存一个随机数,用来标识用户名。

 

 5. 在 Views 文件夹下创建 Home 文件夹,在 Home 目录创建视图 Index

 

 6. 先引入对应的 JQ 1.8(或更高) 版本的包,再引入 SignalR,

 

@{ViewBag.Title = "Index";Layout = "~/Views/Shared/_Layout.cshtml";
}
<script src&#61;"~/Scripts/jquery-1.8.2.min.js">script>
<script src&#61;"~/Scripts/jquery.signalR-2.2.3.min.js">script><script src&#61;"&#64;Url.Content("~/signalr/hubs")">script><div>你的名字&#xff1a;&#64;ViewBag.clientName
div><input type&#61;"text" id&#61;"txt_msg" />
<input type&#61;"button" onclick&#61;"SendMsg()" value&#61;"发送消息" /><div>收到的消息&#xff1a;<div id&#61;"div_msg">div>
div><script>var chat &#61; $.connection.myChatHub;//你的集线器名称&#xff0c;首字母必须小写var myClientName &#61; "&#64;ViewBag.ClientName";$(function () {chat.client.broadcastMessage &#61; function (name, message) {//客户端接收到的 广播消息&#xff0c;处理逻辑
$("#div_msg").append("

" &#43; name &#43; " 对大家说:  " &#43; message &#43; "

");};$.connection.hub.start().done(function () {//启动集线器
console.log("connect ok.");});})function SendMsg() {chat.server.send(myClientName, $("#txt_msg").val()).done(function () {//调用集线器中的 发送消息方法
console.log("send Msg success"); //消息发送成功处理逻辑
}).fail(function (e) {console.warn("send msg error",e);//发送失败
});}
script>

7. 在项目中添加一个 Startup 文件

 

 代码如下&#xff1a;

[assembly: OwinStartup(typeof(TestSignalR2.Startup))]namespace TestSignalR2
{public class Startup{public void Configuration(IAppBuilder app){// 有关如何配置应用程序的详细信息&#xff0c;请访问 http://go.microsoft.com/fwlink/?LinkID&#61;316888app.MapSignalR();}}
}

F5 运行一下&#xff1a;

再开个窗口发消息

 

OK,测试通过&#xff0c;最简单的群聊功能。

 

转:https://www.cnblogs.com/Frank-Jan/p/8875613.html



推荐阅读
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • java文本编辑器,java文本编辑器设计思路
    java文本编辑器,java文本编辑器设计思路 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 探讨在循环中调用$.post()时,回调函数为何会在循环结束后才开始执行,并提供解决方案和优化建议。 ... [详细]
  • 本文介绍如何在 Avalon.js 中定义公共方法,并确保这些方法可以在多个页面中复用,从而提高代码的可维护性和效率。 ... [详细]
  • 本文将详细探讨Linux pinctrl子系统的各个关键数据结构,帮助读者深入了解其内部机制。通过分析这些数据结构及其相互关系,我们将进一步理解pinctrl子系统的工作原理和设计思路。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 微信小程序:授权登录与手机号绑定
    本文详细介绍了微信小程序中用户授权登录及绑定手机号的流程,结合官方指引和实际开发经验,提供了一套完整的实现方案,帮助开发者更好地理解和应用。 ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • iOS 开发技巧:TabBarController 自定义与本地通知设置
    本文介绍了如何在 iOS 中自定义 TabBarController 的背景颜色和选中项的颜色,以及如何使用本地通知设置应用程序图标上的提醒个数。通过这些技巧,可以提升应用的用户体验。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • Eclipse 下 JavaFX 程序开发指南
    本文介绍了 JavaFX,这是一个用于创建富客户端应用程序的 Java 图形和媒体工具包,并详细说明了如何在 Eclipse 环境中配置和开发 JavaFX 应用。 ... [详细]
author-avatar
深耐猪老汉11_245
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有