最简单的聊天室功能

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="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.signalR-2.2.3.min.js"></script> <script src="@Url.Content("~/signalr/hubs")"></script> <div>
你的名字:@ViewBag.clientName
</div> <input type="text" id="txt_msg" />
<input type="button" onclick="SendMsg()" value="发送消息" /> <div>
收到的消息:
<div id="div_msg"> </div>
</div> <script>
var chat = $.connection.myChatHub;//你的集线器名称,首字母必须小写
var myClientName = "@ViewBag.ClientName";
$(function () { chat.client.broadcastMessage = function (name, message) {//客户端接收到的 广播消息,处理逻辑
$("#div_msg").append("<p><b>" + name + "</b> 对大家说:&nbsp;&nbsp;" + message + "</p>");
}; $.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 文件

代码如下:

[assembly: OwinStartup(typeof(TestSignalR2.Startup))]

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

F5 运行一下:

再开个窗口发消息

OK,测试通过,最简单的群聊功能。

Signal 第一个简单Demo的更多相关文章

  1. angular实现了一个简单demo,angular-weibo-favorites

    前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...

  2. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  3. 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

    [前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...

  4. MFC入门(一)-- 第一个简单的windows图形化界面小程序(打开计算器,记事本,查IP)

    ////////////////////////////////序//////////////////////////////// 大约三年前,学过一些简单的编程语言之后其实一直挺苦恼于所写的程序总是 ...

  5. Citrus Engine简单Demo

    Citrus Engine是一个的开源flash平台(platform,也可以说是卷轴类)游戏引擎,它基于Starling Framework添加了各种物理引擎,3D引擎,动画引擎. Citrus实现 ...

  6. Django实战(一)之简单Demo

    菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Li ...

  7. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  8. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  9. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

随机推荐

  1. Hadoop之MapReduce开发总结

    @ 目录 1.输入数据接口:InputFormat 2.逻辑处理接口:Mapper 3.Partitioner分区 4.Comparable排序 5.Combiner合并(可选) 6.Reduce端分 ...

  2. nacos快速安装

    一 什么是 Nacos 服务注册中心和配置中心. 二 使用 下载和启动 使用有两种方式 1.自己下载源码编译 2.下载编译好的压缩包 我比较懒选择了第二种方式. 最新稳定版本 下载地址:https:/ ...

  3. 关于bat中日期时间字符串的格式化

    在其他编程语言中,要实现日期时间字符串的格式化,包括时间计算,都是比较简单的 但在bat或者说cmd.dos中要实现这些功能.还是有一定难度的 首先,windows的cmd中可以使用%date%表示日 ...

  4. 面试题总结:可能是全网最好的MySQL重要知识点

    标题有点标题党的意思,但希望你在看了文章之后不会有这个想法--这篇文章是作者对之前总结的 MySQL 知识点做了完善后的产物,可以用来回顾MySQL基础知识以及备战MySQL常见面试问题. 什么是My ...

  5. Java基础一篇过(三)I/O流总结

    一.啥是I/O 概念:I/O为输入,输出流的统称,流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象. 本质:本质是数据传输,即数据在两设备间的传输称为流,根据数据传输特性将流抽象为各 ...

  6. Mall电商实战项目发布重大更新,全面支持SpringBoot 2.3.0

    1. 前言 前面近一个月去写自己的mybatis框架了,对mybatis源码分析止步不前,此文继续前面的文章.开始分析mybatis一,二级缓存的实现. 附上自己的项目github地址:https:/ ...

  7. Python练习题 037:Project Euler 009:毕达哥拉斯三元组之乘积

    本题来自 Project Euler 第9题:https://projecteuler.net/problem=9 # Project Euler: Problem 9: Special Pythag ...

  8. 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包

    090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  9. kail使用sunJDK

    今天在安装软件的时候报错,提示应使用oracle的JDK,所以鼓捣了一会发现个简单的方法 1.下载安装包解压文件到opttar -xzvf jdk-8u91-linux-x64.tar.gz 2.设置 ...

  10. C++ 异常处理 catch(...)介绍

    转载:https://blog.csdn.net/fcsfcsfcs/article/details/77717567 catch(-)能够捕获多种数据类型的异常对象,所以它提供给程序员一种对异常 对 ...