转让一套基于 Flash 的网页版棋牌平台

赖勇浩(http://laiyonghao.com)
转让一套基于 Flash 的网页版棋牌平台,它是我在 2009 年初开发完成的,当时是接了一个外包,所以才起意做这个项目的,后来项目流产了。最近看到不少网页版棋牌的外包信息,所以本着代码放着也会烂掉,不如挖掘剩余价值的宗旨,在这里转让一下。
之所以在这里转让,而不是选择在外包网之类的,是因为这个项目让我对买家有一些要求:买家有一定的开发能力,如果没有技术人员,建议不要买。
这是因为这个棋牌系统的服务器端是基于 Python 开发的,运行在 GNU/Linux 上,嗯,确切来说现在正在 Ubuntu Server 10.04 上跑着。这个项目使用 MySQL 5.1,在数据库这一块我自己实现了一个分库代理进程,所以撑个 10 万人在线是没有问题的。超过 10 万怎么办?理论上也没有问题,如果事实上有了问题,也没有太大关系,那时你肯定有钱把很多牛人招安了,他们会帮你搞定的。要知道,棋牌找 10 万个人来玩,不是容易的事,起码比找到人写一个能支撑 100 万人在线的棋牌平台要难得多,相信我。
Flash 和 Python 之间是通过 TCP Socket 进行连接通信的,使用的协议是 AMF,服务器端使用 PyAMF 0.6,这玩意很快,你懂的。服务器端由若干条进程,组成一个“伪分布式”系统,嗯,用伪字是因为很多分布式系统的特性它都缺失了,这主要是出于成本收益比的考虑,棋牌所能赚到的钱,跟开发一个牛X的分布式系统所要付出的成本,是不值得你去这样做的,我相信你也懂的。虽然是个“伪分布式”系统,但它的扩展性、灵活性和可靠性还是在一定程度上有保障的。它不能提供 7*24 小时不间断服务,也没有 99.999% 的可靠性,如果你更新系统,你需要重启,但好在如果你不需要更新系统,那你几乎不必去理会它。服务器端对连接的客户端(这里的客户端可能是服务器端的另一条进程)有简单的基于 IP 的安全策略,简单地说,就是会断掉不在可信任 IP 列表里里 IP 过来的连接,这基本上够用,别忘了成本收益比。
这个系统使用的是异步回调的方式来开发业务逻辑,所以不可避免地业务代码被分割在了几个回调函数里,这一点希望买家懂得其中的利害。虽然使用了多线程,但都是很简单的生产者/消费者模式来做的,中间以带锁的队列进行解耦。编写业务代码不需要知道存在多线程这个事实,所有的业务代码都当成是单线程来写就可以了,加锁神马的,都是不需要的。
像所有的棋牌平台一样,业务逻辑(比如斗地主、象棋)都是以插件的形式存在的,不过我这个稍有点不同的是这些业务逻辑是以进程的方式作为插件的,而不是直接 import/loadlibrary 这种直接杀到进程空间里的方式去做的,这也是系统的可靠性比较高的原因。比如斗地主服务死掉,象棋还是可以照样玩的。
最后说一下,目前这个棋牌平台除了已经完成大厅之外,还带有 3 个小游戏,分别是斗地主、中国象棋和五子棋(无禁手),斗地主的完成度已经蛮高了,后两者要低一点。
再多说一句就是虽然说是挖掘剩余价值,但这套系统肯定也不可能是像在论坛里卖的那样几千块钱的,如果你的预算就是这样,就不需要联系了。嗯,该说一下我的联系方式了,请发邮件到:[email protected]

http://qp-demo.laiyonghao.com/client/
在网上架了个棋牌的 demo
测试账号可以随意注册。

以下是几张截图:

转让一套基于 Flash 的网页版棋牌平台_第1张图片

转让一套基于 Flash 的网页版棋牌平台_第2张图片

转让一套基于 Flash 的网页版棋牌平台_第3张图片

你可能感兴趣的:(多线程,python,服务器,Flash,平台,技术人)