大致功能是数据库有数据更新后,服务器将更新的数据发送给客户端,timer控件貌似会占用很多资源,求教用怎样的解决方案比较好?数据库是mysql 。服务器和客户端双向通信可以了 一对一发送数据也可以。最好有实例

解决方案 »

  1.   

    服务器建立socket客户端链接列表,监听独立,发送独立,链接维护独立。
      

  2.   

    连接列表可以是socket数组,监听数据库有没有更新,我想笨的办法就是通过程序定时查询数据库判断是否有更新的数据,当有更新时建立socket连接,建立多线程,将新数据发送到(客户端),我感觉称为服务器端更好些
      

  3.   


    怎样去监听数据库?这方面找了很多找不到 可能关键词不对 数据库是mysq的
      

  4.   


    timer定时查询很耗资源可以的话不考虑这个
      

  5.   

    监听数据库 可以在数据更新的时候建立委托 ,或者是观察者模式,
    不知道你的服务器是否要和客户端保持长连接,想来应该是需要的,若建立长连接,对于个客户端的socket连接、状态、相关信息等,多多少少都会进行相关维护。 建立客户端列表简单点可以用List,其中包含socket、连接状态、客户端ip、等等,根据你的需求定制。不过不需要长链接 ,那么你的客户端必定有固定的ip,若如此客户端列表也可以省略。如前面所说 检测到更新的时候,把相关数据读取到工作任务列表,如果会出现多条等待更新数据 ,那么久要建立work list了, 一般用Queue,保证先进先出的原则。
    当然数据少,就不必如此了对work list 的操作 可由多线程处理,至少一个存储线程,负责向work list中存储更新的数据,
    一个独取线程,负责向外读取数据并发送。
    在Queue空的时候,暂停两个线程,检测到更新的时候,启动连个线程