B/S协同处理的简单实现(reversed Ajax的comet方式Java山寨版)

原创|其它|编辑:郝浩|2009-11-04 10:46:02.000|阅读 632 次

概述:最近写个网页版的游戏,遇到了一个问题就是如果有一个人出牌,怎么让其他玩家立刻看到这个玩家所出的牌。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

最近写个网页版的游戏,遇到了一个问题就是如果有一个人出牌,怎么让其他玩家立刻看到这个玩家所出的牌。

搜索半天无果,不过倒是发现了这类问题都可以归结为一个问题就是B/S架构程序的协同处理问题。

也发了个贴http://topic.csdn.net/u/20091028/20/e3be739d-6551-4d3f-acb7-305ac995ded1.html,寻求好的解决办法。

最后决定用Ajax的comet方式。但是鉴于对服务器有要求,感觉浏览器也不一定全部支持,所以最后决定自己实现。

实现的类视图如下

举例,比如用户进入房间,首先通过EnterBoardAction进入房间,并列出所有在房间内的人。之后通过JavaScript向服务器提出UpdateInfoAction请求,并向Subject注册,该请求通过wait方法,将请求挂起。

当有用户在进入房间时,调用Subject的notifyAllObserver方法,然后所有在房间内的其他用户可以即时更新新进来的用户的信息。

下面展示代码(由于篇幅有限,紧展示部分代码):

查看Board的jsp的JavaScript:

 

查看Board的jsp中的JavaScript

 

AjaxRequest.js:

AjaxRequest的部分代码

服务器端代码简单,在上方类视图中有显示,固不在此列出。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP