vs2010 使用SignalR 提升B2C商城用户体验(三)

vs2010 使用SignalR 提升B2C商城用户体验(三)web

    上一章节,咱们的web即时通信已经能够实现跨域了,但针对咱们的需求,还但愿,一些客户端程序能够和咱们的web用户,在线聊天,因此到SignalR官网,查阅文档,固然,还有版本限制,限制都是SignalR 2.0了,咱们1.几版本的能不能完美支持呢?跨域

  看到了这些内容,感受是否是很惊喜,全端支持服务器

 

咱们来看.NET Library,大概浏览一下,启动VS,新建一个WinForm程序,打开nuget,找到Client的对应版本:this

 Install-Package Microsoft.AspNet.SignalR.Client -Version 1.1.2spa

此时,咱们的项目结构以下:3d

 

 

 

咱们看到,相应的引用已经添加,只有2个类库就能够轻松实现客户端通讯了,有空研究一下源码,反正是开源的,这样就能够根据源码开发出对应的C++版本,以便注册用户的客户端开发了。code

此时打开From1.cs的代码,添加以下:orm

namespace SignalRclient
{
    public partial class Form1 : Form
    {
        HubConnection hubConnection;
        IHubProxy hubProxy;
        private delegate void AddTxt(string msg);
        public Form1()
        {
            InitializeComponent();
            hubConnection = new HubConnection("http://localhost:2154/signalr/hubs");
            hubProxy = hubConnection.CreateHubProxy("pushHub");
            hubProxy.On<string>("addMessage", (message) => this.Invoke(new AddTxt(Show), message));
            hubConnection.Start().Wait();
        }

        private void Show(string msg)
        {
            textBox2.Text += msg + "\r\n";
        }

        private void btnSubmit_Click(object sender, EventArgs e)
        {
            hubProxy.Invoke("send", textBox1.Text).Wait();
        }
    }
}

代码大概解释一下,blog

   hubConnection = new HubConnection("http://localhost:2154/signalr/hubs"); 初始化对咱们IM服务器的集线器链接,
  hubProxy = hubConnection.CreateHubProxy("pushHub");链接指定的集线器。
    hubProxy.On<string>("addMessage", (message) => this.Invoke(new AddTxt(Show), message)); 配置咱们服务端定义的匿名方法,并设置委托方法,以供调用。
    hubProxy.Invoke("send", textBox1.Text).Wait(); send 是咱们在服务端定义的发送方法,这里都是经过方法名调用的,有点相似js的eval了,是否是很强大。


代码很简单,也很方便的能够扩展使用,咱们启动程序,看一下效果
 


已经能够收到本身发出的信息,是否是很神奇,方法名必定要对应上,否则可收不到。
咱们再启动web端,和跨域端,看看是否是三端均可以通讯了:
LOL,是否是很强大,如今,咱们的商户已经能够和买家进行即时沟通了。后面咱们能够深刻扩展,并将Android和IOS的系统一块儿合并进来,会不会超越qq呢。
相关文章
相关标签/搜索