纪实:即时通讯.net signalr初探索

需求:一个Android/IOS框架内嵌asp.net页面的APP,需要做一个客户与客服之间的即时通信。

准备:一开始想用简单websocket轮询,N久之前做过但是不是很记得了,于是上网搜索,无意中发现signalr,决定尝试一下。

出了那么久的东西,相信signalr的通信原理,包括各种源码已经很多了,在此我就不再累赘了。在此主要记录从初建到成功整个过程遇到的问题。

1.0 在vs2012下载集成signalr1.1.4。

由于项目是.net framework 4.0,signalr2.0需要4.5及以上。所以我直接准备下载1.1.4。下载的时候就遇到了问题。首先,如果直接在 工具-》扩展与更新 直接找signalr是找不到的。需要在 工具-》扩展 下载 NuGet Package Manager 。

下载后,点击工具-》库程序包管理器-》管理解决方案的Nuget程序包。打开之后你可能会发现这种情况:


或者是404,那是因为nuget地址配错了。

解决方案:点击该弹出框左下角的设置-》包管理器-》程序包源,新添加一个地址:

我此次采用的是命令下载:


选择对应的程序包源,选择默认要集成的程序,在控制台输入: Install-Package Microsoft.AspNet.SignalR 1.1.4。回车,安装完毕。(这里遇到的麻烦主要是程序包源地址错误。。。)

2.0 开始编码:只是为了理通,并没有过多的做页面。

2.1 首先遇到的第一个问题就是页面js,引入了 signalr.js和~/signalr/hubs,然而还是报错:$.connection.Send is undefined。调试发现connection就直接找不到了。后来发现,是signalr.js和~/signalr/hubs的位置放的不对,直接丢到_Layout.cshtml上,问题解决。

3.0 跨域:客户端的/signalr/hubs要改为对应服务器的文件。客户端创建连接的时候要指定对应服务器( $.connection.hub.url = "http://localhost:57214/signalr";)




总结:这个文章主要是针对自己遇到的一些问题的记录,并不是完整的 纪实。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值