一、随便你在哪个命名空间下新建一个Startup类,并在在该类中注册SignalR。

using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace SignalRTest.Utils {
public class Startup {
public void Configuration(IAppBuilder app) {
app.MapSignalR();
}
}
}

二、在web.config的configuration\appSettings下配置节点,value值是Startup的全类型名称

<appSettings>
<add key="owin:AppStartup" value="SignalRTest.Utils.Startup"/>
</appSettings>

三、在前端页面中引入相关js文件,如下:

    <script src="scripts/jquery-1.10.2.min.js"></script>
<script src="scripts/jquery.signalR-2.2.2.min.js"></script>
<script src="signalr/hubs"></script>

啥?找不到signalr/hubs这个文件,不要慌,这个是程序自动生成的,在页面中只需要加上就OK!

四、新建一个Hub派生类

using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Threading.Tasks;
using MyProject.Entity;
using SignalRTest.BLL; namespace SignalRTest.Utils {
[HubName("groupChatHub")]
public class GroupChatHub:Hub {
[HubMethodName("sendMsg")]
public void SendMsg(string data){ }
}
}

新建的GroupChatHub类型继承Hub抽象类。在GroupChatHub类中实现的方法可以在客户端页面的当做js方法调用,相当于在客户端调用服务端的方法,和AjaxPro有点像。

具体调用的情景如下所示:

 $(function () {
//链接hub
var ticker = $.connection.groupChatHub;
//启动
$.connection.hub.start().done(function () {
//启动完毕,则调用服务器方法 创建聊天房间
         ticker.server.joinRoom(QueryString("sid")).done(function () { });
}); $("#btnSend").click(function () {
//获取文本框信息
var tbxInput = $(this).parent().children(".msgs");
if (tbxInput) {
var msg = tbxInput.val() || '';
if (msg.length > ) {
// 调用服务器方法 主动发送消息,传入发送组,和发送的内容。
ticker.server.sendMsg(QueryString("sid"), msg);
tbxInput.val('');
}
else tbxInput.focus();
}
}); $(".msgs").bind("keydown", event, function () {
if (event.keyCode == )
$("#btnSend").click();
});
});

由此看出,继承自Hub抽象类的派生类GroupChatHub中的公共方法,是可以在前端通过js调用的!

最新文章

  1. Sql数据库时间的转换格式
  2. java提高篇(二三)-----HashMap
  3. systemtap
  4. Hibernate入门5持久化对象关系和批量处理技术
  5. UVa 112 Tree Summing
  6. iis认证方式
  7. 系统调用和中断处理的异同(以Linux MIPS为例)
  8. C语言中内存分配 (转)
  9. 线程高级篇-Lock锁和Condition条件
  10. A 洛谷 P3601 签到题 [欧拉函数 质因子分解]
  11. didLoadFromCCB方法的调用顺序
  12. java实现 批量转换文件编码格式
  13. MapReduce-TextInputFormat 切片机制
  14. linux下tomcat启动很慢的解决办法
  15. Enable Coded UI Testing of Your Controls
  16. Eclipse手动添加web.xml
  17. layui在open弹出层回显,解决动态select数据回显问题
  18. Json格式获取接口返回的值
  19. 复旦大学2016--2017学年第一学期(16级)高等代数I期末考试第七大题解答
  20. 2019南昌网络赛-M(二分)

热门文章

  1. Codeforces 377A - Maze
  2. 响应式图片 (responsive image)
  3. 第 8 章 容器网络 - 055 - 创建 macvlan 网络
  4. Google云平台使用方法 | Hail | GWAS | 分布式回归 | LASSO
  5. org.hibernate.id.IdentifierGenerationException
  6. 20181013xlVba年级报表拆分为班级报表
  7. 20171022xlVBA练手提取入所记录
  8. Rest_framework 和路由配置(一)
  9. Robbers&#39; watch CodeForces - 685A (暴力)
  10. 移动端自动化测试-Mac-IOS-Appium环境搭建