当前位置:编程学习 > C#/ASP.NET >>

WCF 双工通信

--------------------编程问答-------------------- 1.服务器 上的代码怎么接受winform事件的注册
这个可以在服务端定义一个全局的字典保存通道信息,key为客户端的标识,value为通道信息,每次注册,将通道信息保存到字典中。
2.服务器向客户端推送消息
这个就可以遍历那个集合,向客户端发消息。
3.客户端关闭怎么取消这些事件
主动取消事件本质是向服务端发消息,服务端判断之后将该客户端的通道信息从全局字典中移除,具体可以再客户端关闭时closing事件中实现。被动取消,比如断线,可以通过心跳机制实现
整个流程就是服务端开启--客户端发消息给服务端注册--服务端接受之后管理信息--当服务端有信息时随时可以发送到客户端
我以前写的例子可以参考下,资源地址http://download.csdn.net/download/pfe_nova/4225744 --------------------编程问答-------------------- http://download.csdn.net/detail/caozhy/5287998 --------------------编程问答-------------------- @pfe_Nova --------------------编程问答--------------------
引用 1 楼 pfe_Nova 的回复:
1.服务器 上的代码怎么接受winform事件的注册
这个可以在服务端定义一个全局的字典保存通道信息,key为客户端的标识,value为通道信息,每次注册,将通道信息保存到字典中。
2.服务器向客户端推送消息
这个就可以遍历那个集合,向客户端发消息。
3.客户端关闭怎么取消这些事件
主动取消事件本质是向服务端发消息,服务端判断之后将该客户端的通道信息从全局字典中移除,具体可以再客户端关闭时closing事件中实现。被动取消,比如断线,可以通过心跳机制实现
整个流程就是服务端开启--客户端发消息给服务端注册--服务端接受之后管理信息--当服务端有信息时随时可以发送到客户端
我以前写的例子可以参考下,资源地址http://download.csdn.net/download/pfe_nova/4225744


嗯,我写了closing事件的,可是客户端关闭好久才能出发,这个时候,回调函数早就出错了,两外你说的那个Key Value,在程序运行过程中还能获取么?还有当客户端调用服务是,自动形成实例前,我不能给他加事件啊?貌似构造函数也无法 加参数哦,哎被人小白一个,按您说的,我改了下


        public UpDate()
        {
            Temper = StartUpService.TR;
            Temper.EventTempHum += new TempHumHandler(GetTempHumChanges);
            t = new Thread(new ThreadStart(Counting));
            t.IsBackground = true;
            t.Start();
        }

        public void Counting()
        {
            while(true)
            {
                if(i-- < 0)
                {
                    Channel_Closing(new object(), EventArgs.Empty);
                }
                Thread.Sleep(1000);
            }
        }
--------------------编程问答--------------------
引用 2 楼 devmiao 的回复:
http://download.csdn.net/detail/caozhy/5287998


 恩恩,刚下载了,请多多指教 --------------------编程问答-------------------- 学习了好一段时间,终于入门了。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,