作者vn801368 (没钱了...衰)
站内Visual_Basic
标题[.NET] 网路即时更新
时间Sun Jul 20 12:29:48 2008
大家好 小弟目前正在写一个类似MSN的程式
目前正在写上线通知这一块
对於VB.NET的网路程式设计比较不熟所以来请问大家
我想做的是某个人上线可以即时的通知其他人
关於这部分有什麽比较好的做法吗?
因为我翻书 大部份网路都只有介绍TCP跟UDP
可是TCP要一个一个建立连线 很费时
万一要是其中一个一直连线失败就会等很久
还有如果需要通知的人数很多的话
就会要建立很多连线 费时又麻烦
UDP虽然比较快 可是怕会掉包没收到
所以想请问大家有没有比较好的想法可供小弟参考一下
之前我写过JAVA的Multicast 不过VB好像没有这一块
而且当初写完试用时 有时後封包也会被NAT档掉= ="
我目前用的是比较土法炼钢的暴力法= =
先将上线or下线状态记录在资料库
然後client端固定30秒去更新一次
可是这样程式负担很大
而且也没办法达到及时的效果....
我在想有没有办法从MS SQL资料库直接通知VB的程式??
也就是某A上线→去资料库更新状态→"资料库"通知某B 某A上线了
我想应该是有 不过小弟不知道关於这一块的技术叫做是......?
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.240.196.55
1F:推 fumizuki:通常不会server主动通知client 07/20 15:09
2F:推 fumizuki:一定是client去server取得讯息 07/20 15:09
3F:→ fumizuki:server主动通知的话负担会非常的重 07/20 15:10
4F:→ fumizuki:我的想法是这样 client每几秒就会向server取得状态一次 07/20 15:11
5F:→ fumizuki:这个时候server再传相关的讯息给client 07/20 15:12
6F:→ fumizuki:我想bbs的水球应该是主动通知的 msn讯息是被动通知的 07/20 15:14
7F:→ vn801368:我现在的做法就是每30秒取得状态一次啦 07/20 15:15
8F:→ vn801368:不过程式感觉LOAD很重 而且这样就做不到即时效果@@ 07/20 15:17
9F:→ vn801368:如果某A30秒内上线完下线 这样某B可能会什麽都不知道 07/20 15:18
10F:→ vn801368:当然用SERVER主动通知LOAD会更重我也知道啦 07/20 15:18
11F:→ vn801368:我只是想知道有没有这样的技术而已^^" 07/20 15:18
12F:推 fumizuki:程式是有多少内容 怎麽会load重 除非有很多人在测试这个 07/20 17:48
13F:→ fumizuki:程式 07/20 17:48
14F:→ fumizuki:30秒有点长了 不过不管多少时间 讯息是储存在伫列中 07/20 17:49
15F:→ fumizuki:等着client去接收 07/20 17:49
16F:→ fumizuki:不管另一方是否在线上 都一样收得到 07/20 17:49
17F:→ fumizuki:开一个资料表就专门放上下线及即时传讯等各种讯息 07/20 17:50
18F:→ fumizuki:等接收者来接收 07/20 17:50