目标:希望数据库服务器在更改时能通知相应的客户机,同时还得判断客户机连接是否正常。背景:数据库同时用于Web方式访问(不判断web用户的连接情况)。局域网的用户大约为10个左右。Web用户可能几百个到几千个。方案一:纯数据库,客户端定时查询获取相应的信息。由于需要知道各个客户端是否连接正常,需要一个表,客户机定时更新一个字段,记录当前时间,以是否超时判断是否掉线。
优点是编程相对简单。方案二:数据库+Socket,在更改数据库的同时,给Socket服务器发送一条消息,由Socket服务器发送消息到相应的客户机,再由客户机读取数据库。判断连接是否正常依靠Socket定时互相通讯来判断。
优点是减轻了数据库服务器的负担。希望大家结合性能,速度等帮忙决策,谢谢。预祝大家春节快乐!

解决方案 »

  1.   

    多谢关注。
    对于Web用户,只能定时调用WebService获取相应的信息了,否则维护一个庞大的连接列表也不轻松。这对于两者来说是一样的。Web用户和局域网用户功能是不同的。为什么不把数据一起发过去?是因为每个人的操作要做记录,而且,告诉相应的客户机后,也不一定需要其立即进行操作。
      

  2.   

    具体来说吧:(暂不考虑Web用户)从外界每获取一条信息,需要分配给相应的在线的操作员处理,主要是任务分配的问题。关键是必须知道有谁在线。
      

  3.   

    关注,方案二中用SOCKET判断连接不知道有没有好方法。
      

  4.   

    "判断连接是否正常依靠Socket定时互相通讯来判断"这个应该就是判断连接的最常用方法了吧。俗称‘心跳’
      

  5.   

    将Socket服务器程序装在数据库服务器上,Socket准备采用Indey,因此是每个连接一个线程。
    这种情况下,相对于方案一,服务器的复合是否增大?
      

  6.   

    但是我想,Socket多线程是不是更占用资源?