标题: WEBGAME中的消息问题。
  本主题由 蕾歌薇儿 于 2007-12-29 03:38 提升 
lyq81404
新进市民
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5



UID 104625
精华 0
积分 48
帖子 12
威望 0
现金 2447 银币
金币 0 金币
阅读权限 10
注册 2007-10-9
状态 离线
发表于 2007-12-26 10:19  资料  个人空间  短消息 

WEBGAME中的消息问题。


策略游戏中,
如果有人进攻某个玩家,
如果那个玩家在线的话,就要在他的页面上显示一条消息,某某将来攻击他,将于多少时间后到达。
这如何实现?
在线的玩家不会总是刷新页面的啊?
如果用AJAX的话,频繁地刷新页面,是否会造成服务器的负担?

顶部
[广告] 论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
ot512
骑士
Rank: 24Rank: 24Rank: 24


UID 40078
精华 1
积分 1964
帖子 181
威望 2
现金 3252 银币
金币 0 金币
阅读权限 50
注册 2007-8-3
状态 离线
发表于 2007-12-26 14:05  资料  个人空间  短消息  QQ

现在的webgame中有象你说的情况吗?





公元184年,张角相约信众在3月5日以“苍天已死,黄天当立,岁在甲子,天下大吉”为口号兴兵反汉;
“苍天”是指东汉,"黄天"指的就是太平道,根据五德始终说的推测,汉为火德,火生土,而土为黄色,
所以众信徒都头绑黄巾为记号,象征要取代腐败的东汉.
三国的故事由此开篇:
http://61.161.125.7/tc
顶部
[广告] CWG维权点子征集
sizlan
骑士
Rank: 24Rank: 24Rank: 24


UID 103043
精华 0
积分 1558
帖子 498
威望 0
现金 1925 银币
金币 0 金币
阅读权限 50
注册 2007-9-30
状态 离线
发表于 2007-12-26 14:10  资料  个人空间  短消息 


建议楼主从最基本的看起
实现自动刷新的办法很多很多
最基本的html
<meta http-equiv=refresh content="100; url=Default.asp">

顶部
[广告] 论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
fokker1027
老兵
Rank: 9Rank: 9



UID 11979
精华 0
积分 260
帖子 31
威望 0
现金 2521 银币
金币 0 金币
阅读权限 30
注册 2007-1-5
状态 离线
发表于 2007-12-26 14:14  资料  个人空间  短消息 

“如果用AJAX的话,频繁地刷新页面,是否会造成服务器的负担?”
你显然对ajax有严重误解
应用ajax很大的优势就是不刷新页面,而是后台发送一个xml的http请求,然后接收服务器返回的数据,最后交给浏览器执行javascript来解析

顶部
[广告] 论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
alp
游戏官方特派
Rank: 68Rank: 68Rank: 68Rank: 68Rank: 68



UID 18496
精华 0
积分 7400
帖子 2053
威望 0
现金 12942 银币
金币 1 金币
阅读权限 100
注册 2007-3-25
状态 离线
发表于 2007-12-26 14:27  资料  个人空间  短消息  QQ

如果你的服务器够强悍,8核16核什么的,就不用考虑负担问题了,尽管刷吧

顶部
[广告] 多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
蜡笔小黑
骑士
Rank: 24Rank: 24Rank: 24
XE的怪蜀黍


UID 12951
精华 0
积分 2393
帖子 879
威望 0
现金 5144 银币
金币 0 金币
阅读权限 50
注册 2007-1-24
来自 utopia
状态 离线
发表于 2007-12-26 16:12  资料  个人空间  主页 短消息  添加 蜡笔小黑 为MSN好友 通过MSN和 蜡笔小黑 交谈 QQ

对于WEB服务器来说,这不是问题,只要同时刷新的人不多,且数据量不大的话没什么问题.

AJAX的话,如果你不是1毫秒就刷新一次的话,又有什么关系呢?难道你想用WEB服务器来做一个即时战略对战游戏的服务器端...不过毕竟HTTP素无状态的,每刷新一次又要重新建立连接,频繁刷新依然素不可取地.






http://utopia-china.myminicity.com
顶部
[广告] CWG维权点子征集
ot512
骑士
Rank: 24Rank: 24Rank: 24


UID 40078
精华 1
积分 1964
帖子 181
威望 2
现金 3252 银币
金币 0 金币
阅读权限 50
注册 2007-8-3
状态 离线
发表于 2007-12-27 10:52  资料  个人空间  短消息  QQ

早上看了一下<span></span>
我知道怎么做了,我会在我的游戏用使用,哈哈....感谢LZ





公元184年,张角相约信众在3月5日以“苍天已死,黄天当立,岁在甲子,天下大吉”为口号兴兵反汉;
“苍天”是指东汉,"黄天"指的就是太平道,根据五德始终说的推测,汉为火德,火生土,而土为黄色,
所以众信徒都头绑黄巾为记号,象征要取代腐败的东汉.
三国的故事由此开篇:
http://61.161.125.7/tc
顶部
[广告] 多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
jackyz
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 107565
精华 0
积分 324
帖子 63
威望 0
现金 2552 银币
金币 0 金币
阅读权限 40
注册 2007-10-26
状态 离线
发表于 2007-12-27 12:11  资料  个人空间  短消息 

欢迎触及Web的技术“边界”。

在目前主流的各种技术下,各种纯Web技术形式的“频繁刷新”(IFrame,XHR,ServerPush,MetaRefresh),在到达一定的并发量后(不同的技术这个量不同,但应该都达不到你的期望值),都将对服务器的正常服务产生严重影响(你当然可以去尝试实现,但你最终会碰到这个问题)。

最简单的办法,就是避免这么做(你可以用其他技术来实现,如ActiveX,JavaApplet,但你会因此丧失WebGame的便利性)。这也是为什么你在目前的WebGame中都见不到这么用的根本原因。

顶部
[广告] 论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
marswj
老兵
Rank: 9Rank: 9



UID 114068
精华 0
积分 136
帖子 27
威望 0
现金 2468 银币
金币 0 金币
阅读权限 30
注册 2007-12-3
状态 离线
发表于 2007-12-27 15:13  资料  个人空间  主页 短消息 

触发取值。。。。

顶部
[广告] 论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
lyq81404
新进市民
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5



UID 104625
精华 0
积分 48
帖子 12
威望 0
现金 2447 银币
金币 0 金币
阅读权限 10
注册 2007-10-9
状态 离线
发表于 2007-12-28 08:08  资料  个人空间  短消息 



QUOTE:
原帖由 fokker1027 于 2007-12-26 14:14 发表
“如果用AJAX的话,频繁地刷新页面,是否会造成服务器的负担?”
你显然对ajax有严重误解
应用ajax很大的优势就是不刷新页面,而是后台发送一个xml的http请求,然后接收服务器返回的数据,最后交给浏览器执行 ...

我说法说错了,AJAX我用的最多的就是他的无刷新更新数据,不好意思,手误。

看来还是只能用户操作的时候显示了......
我可承担不起那样的服务器........

顶部
[广告] 论坛红包功能恢复,准骑士以上可评分。结婚系统安装完毕,大家可以开始表白了
lyq81404
新进市民
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5



UID 104625
精华 0
积分 48
帖子 12
威望 0
现金 2447 银币
金币 0 金币
阅读权限 10
注册 2007-10-9
状态 离线
发表于 2007-12-28 08:13  资料  个人空间  短消息 

那么,还一个问题就来了,现在好多WEBGAME挂接的聊天室那又是如何实现的呢?
也没有要用ActiveX什么的啊。。。。。

顶部
[广告] CWG维权点子征集
lyq81404
新进市民
Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5



UID 104625
精华 0
积分 48
帖子 12
威望 0
现金 2447 银币
金币 0 金币
阅读权限 10
注册 2007-10-9
状态 离线
发表于 2007-12-28 08:14  资料  个人空间  短消息 



QUOTE:
原帖由 marswj 于 2007-12-27 15:13 发表
触发取值。。。。

触发取值,如何做?

顶部
[广告] CWG维权点子征集
蜡笔小黑
骑士
Rank: 24Rank: 24Rank: 24
XE的怪蜀黍


UID 12951
精华 0
积分 2393
帖子 879
威望 0
现金 5144 银币
金币 0 金币
阅读权限 50
注册 2007-1-24
来自 utopia
状态 离线
发表于 2007-12-28 17:54  资料  个人空间  主页 短消息  添加 蜡笔小黑 为MSN好友 通过MSN和 蜡笔小黑 交谈 QQ

因为HTTP素无状态协议,那么服务器端貌似木有主动发送信息到客户端的可能,其实LZ这个问题很好,我想了很久也木有发现有用纯粹WEB的解决方法,难道非要用APPLET,ACTIVEX才可以,期待有其他解.






http://utopia-china.myminicity.com
顶部
[广告] web棋牌市 6.16内测开启
ot512
骑士
Rank: 24Rank: 24Rank: 24


UID 40078
精华 1
积分 1964
帖子 181
威望 2
现金 3252 银币
金币 0 金币
阅读权限 50
注册 2007-8-3
状态 离线
发表于 2007-12-28 21:53  资料  个人空间  短消息  QQ

我准备这么做:


我用的jsp,不知道asp和php.


服务器端:
用一个bean,把属性设置成服务器共享.bean中放个list,这个list放用户提交上来的message.

用add()放到list中.当list中的行数到一定多,就清空前面的. 保持list不要太大就行.

这样就同数据库无关了,我开始也想放到数据库中,然后取表的数据,然后就想数据库的负载大,
回头来想想,玩家的words其实根本不用保存,也没什么意义.



客户端:
页面中加span可变文本 ajax的标签,用js的setInterval("xxx",1000)定时调用一个查询页去取server list中的前20条words.


这样就可以了,大家都看得到聊天words...也无数据库负载,还不用刷新页面.





公元184年,张角相约信众在3月5日以“苍天已死,黄天当立,岁在甲子,天下大吉”为口号兴兵反汉;
“苍天”是指东汉,"黄天"指的就是太平道,根据五德始终说的推测,汉为火德,火生土,而土为黄色,
所以众信徒都头绑黄巾为记号,象征要取代腐败的东汉.
三国的故事由此开篇:
http://61.161.125.7/tc
顶部
[广告] 多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
sizlan
骑士
Rank: 24Rank: 24Rank: 24


UID 103043
精华 0
积分 1558
帖子 498
威望 0
现金 1925 银币
金币 0 金币
阅读权限 50
注册 2007-9-30
状态 离线
发表于 2007-12-29 11:03  资料  个人空间  短消息 


我准备这么做:


我用的php,不知道asp和jsp.


服务器端:
select 是否有新消息 from 消息表 where id=我的名字
全用数据库好处是如果有人说脏话,n年后都可以查到


客户端:
自动刷新用
<meta http-equiv=refresh content="100; url=Default.asp">

慢节奏的游戏,发现迟几分钟无所谓的

顶部
[广告] CWG维权点子征集
jackyz
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 107565
精华 0
积分 324
帖子 63
威望 0
现金 2552 银币
金币 0 金币
阅读权限 40
注册 2007-10-26
状态 离线
发表于 2007-12-29 14:51  资料  个人空间  短消息 

办法当然是有的,上面各位提到的方法都可行,就是费资源。我的意思并不是因为你的程序会费掉多少资源,而是底层的软件会为此费掉多少资源……。

这个话题说多了没意思,不如自己去试试,开上 50 个并发实际测一下。

然后简单的用除法来算平均每个这样的连接会消耗多少系统(整体的)资源。这样,这些方案的实用性就心中有底了。

顶部
[广告] web棋牌市 6.16内测开启
fokker1027
老兵
Rank: 9Rank: 9



UID 11979
精华 0
积分 260
帖子 31
威望 0
现金 2521 银币
金币 0 金币
阅读权限 30
注册 2007-1-5
状态 离线
发表于 2007-12-29 16:08  资料  个人空间  短消息 

短消息和聊天消息要分清楚
短消息倒是可以放在数据库里
聊天消息没必要

顶部
[广告] CWG维权点子征集
蜡笔小黑
骑士
Rank: 24Rank: 24Rank: 24
XE的怪蜀黍


UID 12951
精华 0
积分 2393
帖子 879
威望 0
现金 5144 银币
金币 0 金币
阅读权限 50
注册 2007-1-24
来自 utopia
状态 离线
发表于 2008-1-6 17:47  资料  个人空间  主页 短消息  添加 蜡笔小黑 为MSN好友 通过MSN和 蜡笔小黑 交谈 QQ



QUOTE:
原帖由 ot512 于 2007-12-28 21:53 发表
我准备这么做:


我用的jsp,不知道asp和php.


服务器端:
用一个bean,把属性设置成服务器共享.bean中放个list,这个list放用户提交上来的message.

用add()放到list中.当list中的行数到一定多,就清空前 ...

你这个设计有2个致命的问题,就是没考虑到极限情况,如果同时间提交的数据超过了你LIST的所谓的一定多的数量,那么就会产生数据的丢失,某些人发的消息将不被看到.

第2就是如果某个人提交消息的时候发生了严重的延迟(虽然机会非常小,但是并非不可能,比如说遇到堵塞,包被路由丢弃了),那么他在取得
消息的时候就会有可能丢失一部分已经被清空的消息.

个人认为应该在数据库保存一段时间的消息,内存中的LIST作为一个高速缓冲存在,根据提交的时间戳来决定反馈的数据.貌似比较完备一点.






http://utopia-china.myminicity.com
顶部
[广告] 多玩独家代理欧美航海题材网页游戏《Seafight海战英豪》7月14日公测
榕龙
老兵
Rank: 9Rank: 9



UID 118074
精华 0
积分 224
帖子 84
威望 0
现金 2609 银币
金币 0 金币
阅读权限 30
注册 2007-12-21
状态 离线
发表于 2008-1-18 05:19  资料  个人空间  短消息 



QUOTE:
原帖由 jackyz 于 2007-12-27 12:11 发表
欢迎触及Web的技术“边界”。

在目前主流的各种技术下,各种纯Web技术形式的“频繁刷新”(IFrame,XHR,ServerPush,MetaRefresh),在到达一定的并发量后(不同的技术这个量不同,但应该都达不到你的期望值 ...

请问XHR,ServerPush, MetaRefresh分别是什么方法?

根据您的经验,这些方法的量大约到多少?

谢谢,难得看到一个有技术含量的回复,希望继续交流。

顶部
[广告] CWG维权点子征集
榕龙
老兵
Rank: 9Rank: 9



UID 118074
精华 0
积分 224
帖子 84
威望 0
现金 2609 银币
金币 0 金币
阅读权限 30
注册 2007-12-21
状态 离线
发表于 2008-1-18 05:26  资料  个人空间  短消息 



QUOTE:
原帖由 ot512 于 2007-12-28 21:53 发表
我准备这么做:


我用的jsp,不知道asp和php.


服务器端:
用一个bean,把属性设置成服务器共享.bean中放个list,这个list放用户提交上来的message.

用add()放到list中.当list中的行数到一定多,就清空前 ...

这种方法是不错,不过我很早以前就实现用来编写免刷新的asp聊天室了。

当时参考的是(好像是稻香)asp免刷新聊天小示例,但是比较简单,在线用户列表都没有。后来我参照着把页面刷新方式但功能相对完整的蓝芒聊天室改成了这种方法实现的“客户端js驱动的免刷新”聊天室,并且当时尝试着再改用xmlhttp来实现,因为中文有乱码,那时太早没其他人研究,还要我自己写解码,所以就搁一边了。具体几年前我都不太记得了,好像是初中时代吧,不知道算不算国内最早期的ajax的试验。

现在服务器改成linux平台了,要不还能给个演示地址。有兴趣的留邮箱免费给代码。

顶部
[广告] CWG维权点子征集
 


海盗王

当前时区 GMT+8, 现在时间是 2008-7-6 22:57
沪ICP备06036464号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.090784 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - Chinese Webgame BBS 中国网页游戏论坛 - Archiver - WAP