2011-08-29 14 views
4

我面临的挑战是通过仅使用标题中提到的技术来模拟网站(例如游戏网站)的两个用户之间的沟通渠道。如何使用PHP,MySQL DB和JavaScript模拟对等通信通道?

最近我开发了一个在线国际象棋网站,其背后的想法是让用户有机会玩“现场”比赛,不仅仅是漫长的比赛,你会做出一个动作,然后回到1- 15天,看看你的对手是否有回应。这种游戏引擎的工作方式意味着向服务器发送异步请求,以更新与游戏相关的信息(如果您进行移动),还可以验证是否有任何变化(如果您正在等待对手移动)。

为了更好地解释这个......该轮到谁了(当然浏览器)发送一个异步的球员。请求更新游戏信息,恰好在他进行移动时。同时,对手发送PERIODIC请求,“询问”是否有任何改变。如果有什么变化,在板更新后切换角色。

定时器落后于引擎的功能,所以我对你的问题是这样的:你将如何去模拟两个玩家之间的com频道,同时尽量不要在服务器上施加太多压力,而且还要玩游戏尽可能快地更新,以保持“活”的感觉。这在1分钟游戏中是最重要的(可用类别之一)。因为在那种情况下,请求经常发生(至少1秒)。但服务器响应可能会延迟,当同时有数百个游戏可用时,服务器上会有很多压力等等,所以您会看到我的问题。

我期待着你们的听觉和采摘你的大脑,如果你有什么好的想法:)

干杯! 安德烈

PS:如果你想尝试一下,这个名字是e-chess960.com

+1

退房的Node.js和socket.io – Furicane

回答

3

你会想建立一个套接字服务器。 node.js是一个很好的基于javascript的库,可用于套接字服务器。每个客户端都会创建一个到套接字服务器的套接字连接,然后当客户端向套接字服务器发送一条消息时,套接字服务器可以立即将消息发回给它的订阅者,而不必将它存储在任何地方。

插座服务器需要套接字访问,这通常需要一个VPS而不是共享服务器。

使溶液的工作,你会要求客户必须创建您的服务器套接字连接的能力。一些浏览器已经可以作为html5的一部分,但还不是全部。你也可以使用Flash来创建套接字连接。

+0

对于node.js.使用与node.js组合的socket.io实现全双工通信的交叉浏览器兼容性。这对于提到的两个库来说是小菜一碟。 –

+0

那么,我不得不承认,从我读过的,这是一些非常棒的技术。我过去遇到过Node,但没有意识到它是什么,所以我转过头去了。直到现在......我相信这正是我所期待的那种技术。谢谢! –

-2

你真的想不拉服务器每秒,而是保持连接打开并使用observer-pattern将更新分发到什么特定的客户(换句话说:推而不是拉)。这样,您的服务器资源就不会被每秒钟和每个客户端的新连接所淹没。一个图书馆来完成这是彗星图书馆。看看这个不错的tutorial的示例应用程序。

+0

你能不能添加评论,你为什么downvoted我的帖子吗? – Lars

+0

我没有降级任何人的投票。或者是不是针对我的问题? –

+0

它没有指向你,但在降级的人没有解释为什么(这是一个粗鲁的行为国际海事组织)。你看过教程和Comet Library吗? – Lars