是这样的,最近在做局域网的及时聊天软件消息存放在数据库当中,只是在定时读取消息这里头疼了,使用timer吧感觉内存增长很快,也不能用死循环,求教各位大大,如何做到及时读取消息?没有分了,请谅解如果每个客户端都每隔60秒轮训数据库,那1000个客户端会不会把服务器搞挂了?

解决方案 »

  1.   

    MessageQueue需要客户机安装组建,太麻烦了,我的应用程序是C/S的
      

  2.   

    你应该在服务器上放个软件,由这个软件来接收数据入库,并且同时查询,该用户是否在线,如果在线,则直接发送到该用户的客户端上。
    不是客户端使用timer来取数据。
      

  3.   

    您代码有问题你肯定是在TIMER里面不停的创建和关闭连接数据库的对象导致的。
      

  4.   

    我可以在服务器上写个服务,定时读取数据库中未读的消息,存在一个DataTable中,然后定时客户端访问这个表,是这样的么?
      

  5.   

    你用socket通信是可以做到直接发送数据给客户端的,不需要让客户端来读取你的数据,你直接将数据发送给客户端就行了
    就按照你的说法写个服务,当然不用服务也可以。
      

  6.   

    您代码有问题你肯定是在TIMER里面不停的创建和关闭连接数据库的对象导致的。
    是这个样子的,呵呵
      

  7.   

    我也想用socket通信,但是内网里面服务器是不能访问客户端端口的,安全软件做了限制
      

  8.   

    我也想用socket通信,但是内网里面服务器是不能访问客户端端口的,安全软件做了限制
      

  9.   

    搞定了,最后还是采用webservice每2秒采集一次数据库的消息,然后存放在一个DataTable中,之后客户端直接访问这个DataTable读取数据,程序已经实现了