多层数据库实时更新 ( 积分: 20 )

  • 主题发起人 主题发起人 靴子
  • 开始时间 开始时间

靴子

Unregistered / Unconfirmed
GUEST, unregistred user!
在多层中如果一个客户上传了新的数据,那么其他的客户的数据如何也实时的更新呢?
 
在多层中如果一个客户上传了新的数据,那么其他的客户的数据如何也实时的更新呢?
 
可以參考Resync 方法
 
Lewislei麻烦你说明白点。这个怎么用呢啊?
 
我也挺关心这个问题的
 
自己再顶一次吧~~~
 
这个问题我也想知道
 
有朋友给想了个办法。是这样的:
1.简单一点的,服务器把客户的更新写入日志,客户端定时访问日志,如果需要更新则下载更新数据。
2.复杂一点的,服务器的数据更新后向各客户端广播更新事件,客户端响应更新事件到服务器下载数据。
第二种方法可以保证客户端可以第一时间知道服务器有数据更新,但如果此时客户端没开机的话就可能错过了,所以最好是两者结合。
 
to:靴子,
(1)客户端是采用自动更新呢?还是采用提示操作员来刷新。我觉得:
如果是自动更新,那么客户端如果正在录入数据或某种操作可能会造成影响,不知道是不是这样?
 
to: twosunsun
对!有可能,那可以提示一下啊,如果有新的数据了,那么就让他人工更新了。
 
服务器给所有客户端发一条指示消息
 
djh_djh你好。
中间层不是一个接口吗?而且他是被动的吧?如何让他给每个客户短一条指令呢啊?
我现在想:如果让客户端有个定时访问远程数据,如果有新的就更新。
还有就是各位说的让服务器定时的向客户端放指令让他更新了啊。

这两个哪个好些呢?
 
应是 让服务器定时的向客户端放指令让他更新了啊 好 大多数标准协议都是这么设计的
看看 H323 SNMP等
指示实现方法要看下层协议是什么
如果你用的是DCOM协议, 它自己就带 "事件回调机制 "
详见 连接点的概念
如果你用的是TCP协议 那也好弄 为每个客户端保存一个 socket 的句柄
发到相应的Socket上就OK了
只是要自己继承一个 Connection了 很好写的
 
还有一个方法是IP组播
服务器在一个组播地址在组播更新消息
 客户端绑定这个地址,加入多播组, 监听
 
我的做法是服务器每次更新了数据后就进行压缩并打包,客户端校验有没有
新的数据包,如果有下载数据包并解包执行包内的SQL语句,就OK了!
 
To楼上的,你怎么知道每个客户端都下载了新包了?如果你不知道,会不会打的包越来越多?
还是你为每个包限定了一个有效期,会使用另一个线程删除已经过期的包?
 
各位大哥说的我到是明白,但是实现起来还是感觉一脸的茫然。因为我是刚刚接触这方面,而且对网络也不了解。有那方面的书说这些的呢?
或是有没有代码让我看看~~谢谢了。
zwlwenlong@163.com我的邮箱
 
我的主要目的是这样的:客户端1把数据保存了之后,就提交了数据库。由于客户端2的数据是客户端1分配给他的。比如如果客户端1让客户端2看到一条数据,客户端1就把这条数据的一个字段该为客户端2。 当改完了之后客户端2应该及时看到他增加了一条数据。
因为客户端分布在不同的城市,所以我要用SocketConnection来连接中间层。
如果哪个大侠做过这方面或有这方面的经验,希望指导一下小弟。
 
帮顶一下。。。。。。。
 
我也沒做過,還請大家多指教
 
后退
顶部