热门标签 | 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



推荐阅读
  • 本文目录一览:1、ExtJS中如何让日历控件向上,点击向下显示,做成图2那种向上的 ... [详细]
  • ckeditor在mvc4发布后出现无法显示的情况,使用js控制台发现ckeditor.js调用其它js文件的路径出错,找不到那些文件。错误的是:bundles.Add(new ... [详细]
  • 子元素过滤器在页面设计过程中需要突出某些行时,可以通过基本过滤选择器中的:eq()来实现表单中行的凸显,但不能同时让多个表具有相同的效果。在jQuer ... [详细]
  • Asp.Net MVC之 自动装配、动态路径(链接)等
    一、Model层1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Web;5 ... [详细]
  • SpringMVC基础篇:MVC基础知识
    第一章:SpringMVC引言一:什么是SpringMVC概念:SpringMVC是在Spring框架基础上衍生而来的一个MVC框架& ... [详细]
  • spring MVC配置文件示例
    springMVC配置文件示例Xml代码 ... [详细]
  • 首页#father{border:0pxso ... [详细]
  • 实验六提交版
    1.21.3part2共用体与结构体类型的区别?答:共用体与结构体的区别在于它们的表示方法不同。结构体内,结构体的各成员顺序排列存储,每个成员都有自己独立的存储位置,而共用体的情况 ... [详细]
  • BlackBerry 应用程序开发者指南 第一卷:基础第12章 打包和部署
    作者:Confach发表于2006-04-2821:49版权信息:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息.http:www.cnblogs.comconf ... [详细]
  • 1.html页面如何使用swiper对swiper不熟练的小伙伴们可能不知道怎么开始使用它,那么下面就让我来简单讲述一下关于swiper的使用流程,这 ... [详细]
  • 【前端学习之HTMLCSS进阶篇】 CSS第二篇 块级格式化上下文与堆叠上下文
    【前端学习之HTML&CSS进阶篇】--CSS第二篇–块级格式化上下文与堆叠上下文文章目录【前端学习之HTML&CSS进阶篇】--CSS第二篇--块级格式化上下文与堆叠上下文前言一 ... [详细]
  • 原理:    在父组件中使用axios获取异步数据传给子组件,但是发现子组件在渲染的时候并没有数据,在created里面打印也是空的,结果发现一开始子组件绑定的数据是空的,在请求数据没有返回数据时,子组件就已经加载了,并且他绑定的值也是空的使用vuex全局状态管理,其实简单,利用vuex的辅助函数(mapState,mapMutations)mapState是将st ... [详细]
  • postman使用环境变量
    变量postman提供了变量设置,有四种变量类型本地变量全局变量环境变量数据变量什么是环境变量环境变量指在不同环境,同一个变量值随着环境不同而变化,比如在测试环境时,host为:d ... [详细]
  • 获取鼠标的位置/坐标
    使用javascript如何获取鼠标的位置呢?获取光标的位置?获取鼠标坐标先看效果?核心方法:****返回鼠标的坐标*@parame*@returns{{x ... [详细]
  • 前段时间使用MySQL作为数据存储做了一个小项目。项目上线运行了几十天之后,数据已经越来越多,达到了100多M。用mysqldump每天备份全量数据然后 ... [详细]
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社区 版权所有