最近在做IM程序,客户端和服务器端已经完成.采用模式如下:
客户端(Winform)--->TCP--->服务器端--->TCP--->客户端(Winform)
现在 想做一个WEB客户端,初步设想采用:
WEB客户端(ASP.net)--->Remoting--->服务器端---->TCP---客户端(Winform)
这种模式.WEB客户端通过Remoting登录和发送消息. 接收消息准备采用 当服务器收到消息后,通过Remoting事件通知Web客户端,这样来做到Web客户端即时收消息. 
即:A和B通过WEB端登录到服务器,C通过客户端登录到服务器,这时,C向A和B分别发送消息,服务器通过Remoting事件,让A和B分别收到各自的消息. 在Remoting的事件中,事件是否才用的是广播模式? 即服务收到一条消息,马上发出事件,这时A和B都要收到? 能不能做到,当服务器收到A的消息时,只向A发出收到消息的事件??
由于我对ASP.net不熟悉,不知道上面我的设想(Web客户端)能不够实现. 如果大家有好的意见,请提出,谢谢!

解决方案 »

  1.   

    肯定是需要设置.net的区域安全级别的,因为winform是在浏览器运行,ie本身就会限定了权限,要不然让一个winform毫无顾忌地在client端运行,windows一点安全都没有了
      

  2.   

    楼上的把我说的意思理解错了,我的意思是,现在 我做了一个C/S客户端,现在 还要用Asp.net做一个Web版.
      

  3.   

    你想用Remoting来做web版的吧,
    WEB客户端(ASP.net)---> Remoting---> 服务器端----> TCP---客户端(Winform) 
    机制上,你可能要改好多的东西。
    实现是可以,不过比较罗嗦。
      

  4.   

    对的,以Remoting来做WEB版,以我们现在 IM服务器的机制,加一个WEB客户端应该不难.
    主要是WEB端采用如何收消息.
    主要是消息到达时,如何用Remoting事件控制单个广播?
      

  5.   

    可以,
    不过在WinForm里面用Remoting事件控制单个广播的话,一般推荐用CAO
    不过,因为asp.net本身的实例是不断创建的,也就是说,每次PostBack回来页面对象就是一个新的对象,所以要事件控制单个广播有点麻烦。asp.net里面可能用论询的方式更方便一些。
      

  6.   

    我们在Winform 里不用Remoting实现.
    Winform是用Jabber协议加TCP来实现的.现在 主要问题就是WEB客户端.
    哪如果用轮询,效率不高啊.
    试想一下,如果WEB 客户端有两千人同时登录,每几秒钟轮询一下,这个IM服务器的压力不小啊.纯客户端的TCP登录,单台服务器能支持一万个用户同时收发消息.