MVC使用SignalR 提高B2C商城用户体验3
2017-05-19 14:45
489 查看
上一章节,我们的web即时通讯已经可以实现跨域了,但针对我们的需求,还希望,一些客户端程序可以和我们的web用户,在线聊天,所以到SignalR官网,查阅文档,当然,还有版本限制,限制都是SignalR 2.0了,我们1.几版本的能不能完美支持呢?
看到了这些内容,感觉是不是很惊喜,全端支持
我们来看.NET Library,大概浏览一下,启动VS,新建一个WinForm程序,打开nuget,找到Client的对应版本:
Install-Package Microsoft.AspNet.SignalR.Client -Version 1.1.2
此时,我们的项目结构如下:
我们看到,相应的引用已经添加,只有2个类库就可以轻松实现客户端通信了,有空研究一下源码,反正是开源的,这样就可以根据源码开发出对应的C++版本,以便注册用户的客户端开发了。
此时打开From1.cs的代码,添加如下:
view
sourceprint?
代码大概解释一下,
view
sourceprint?
view
sourceprint?
view
sourceprint?
view
sourceprint?
view
sourceprint?
已经可以收到自己发出的信息,是不是很神奇,方法名一定要对应上,不然可收不到。
我们再启动web端,和跨域端,看看是不是三端都可以通信了:
LOL,是不是很强大,现在,我们的商户已经可以和买家进行即时沟通了。后面我们可以深入扩展,并将Android和IOS的系统一起合并进来,会不会超越qq呢。
看到了这些内容,感觉是不是很惊喜,全端支持
我们来看.NET Library,大概浏览一下,启动VS,新建一个WinForm程序,打开nuget,找到Client的对应版本:
Install-Package Microsoft.AspNet.SignalR.Client -Version 1.1.2
此时,我们的项目结构如下:
我们看到,相应的引用已经添加,只有2个类库就可以轻松实现客户端通信了,有空研究一下源码,反正是开源的,这样就可以根据源码开发出对应的C++版本,以便注册用户的客户端开发了。
此时打开From1.cs的代码,添加如下:
view
sourceprint?
01.
namespace SignalRclient
02.
{
03.
public
partial
class
Form1 : Form
04.
{
05.
HubConnection hubConnection;
06.
IHubProxy hubProxy;
07.
private
delegate
void
AddTxt(string msg);
08.
public
Form1()
09.
{
10.
InitializeComponent();
11.
hubConnection =
new
HubConnection(
'http://localhost:2154/signalr/hubs'
);
12.
hubProxy = hubConnection.CreateHubProxy(
'pushHub'
);
13.
hubProxy.On<string>(
'addMessage'
, (message) =>
this
.Invoke(
new
AddTxt(Show), message));
14.
hubConnection.Start().Wait();
15.
}
16.
17.
private
void
Show(string msg)
18.
{
19.
textBox2.Text += msg + '
20.
';
21.
}
22.
23.
private
void
btnSubmit_Click(object sender, EventArgs e)
24.
{
25.
hubProxy.Invoke(
'send'
, textBox1.Text).Wait();
26.
}
27.
}
28.
}
代码大概解释一下,
view
sourceprint?
1.
hubConnection =
new
HubConnection(
'http://localhost:2154/signalr/hubs'
); 初始化对我们IM服务器的集线器连接,
view
sourceprint?
1.
hubProxy = hubConnection.CreateHubProxy(
'pushHub'
);连接指定的集线器。
view
sourceprint?
1.
hubProxy.On<string>(
'addMessage'
, (message) =>
this
.Invoke(
new
AddTxt(Show), message)); 配置我们服务端定义的匿名方法,并设置委托方法,以供调用。
view
sourceprint?
1.
hubProxy.Invoke(
'send'
, textBox1.Text).Wait(); send 是我们在服务端定义的发送方法,这里都是通过方法名调用的,有点类似js的eval了,是不是很强大。
2.
3.
4.
代码很简单,也很方便的可以扩展使用,我们启动程序,看一下效果
view
sourceprint?
1.
已经可以收到自己发出的信息,是不是很神奇,方法名一定要对应上,不然可收不到。
我们再启动web端,和跨域端,看看是不是三端都可以通信了:
LOL,是不是很强大,现在,我们的商户已经可以和买家进行即时沟通了。后面我们可以深入扩展,并将Android和IOS的系统一起合并进来,会不会超越qq呢。
相关文章推荐
- MVC使用SignalR 提高B2C商城用户体验2
- MVC使用SignalR 提高B2C商城用户体验1
- vs2010 使用SignalR 提高B2C商城用户体验(一)
- vs2010 使用SignalR 提高B2C商城用户体验(三)
- vs2010 使用SignalR 提高B2C商城用户体验(二)
- 使用SignalR 提高B2C商城用户体验1
- 使用SignalR 提高B2C商城用户体验1
- 使用e-tag来加快页面加载速度和提高用户体验
- iOS开发中使用UITableView提高用户体验
- Android 使用简单又方便的SharedPreferences让导航页面只进入一次 , 提高用户对app的体验度
- 浅谈电子商务b2c商城中的用户体验
- 使用异步和事件代理提高用户体验(短信群发)
- Asp.NET MVC 使用 SignalR 实现推送功能二(Hubs 在线聊天室 获取保存用户信息)
- 第十七章 提升用户体验 之 使用MVC扩展功能控制程序行为
- ASP.NET MVC使用SignalR统计在线用户人数
- Android使用后台线程提高用户体验
- (13)使用Ajax Helper 提高用户体验
- 使用线程池模拟处理耗时任务,通过websocket提高用户体验
- jquery中beforeSend和complete的使用 --- 提高用户体验&&设置请求头
- 传智播客erp项目学习,使用Ajax提高用户体验效果