赖勇浩(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 个小游戏,分别是斗地主、中国象棋和五子棋(无禁手),斗地主的完成度已经蛮高了,后两者要低一点。
再多说一句就是虽然说是挖掘剩余价值,但这套系统肯定也不可能是像在论坛里卖的那样几千块钱的,如果你的预算就是这样,就不需要联系了。嗯,该说一下我的联系方式了,请发邮件到:mail@laiyonghao.com

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

转让一套基于 Flash 的网页版棋牌平台相关推荐

  1. 基于Python实现网页版去水印之去除图片右下角水印

    基于Python实现网页版去图片右下角水印 Python可以用OpenCV去除图片水印,但如何结合web框架去实现网页版去水印,带着这样的疑问,我搜索研究了一下,发现是完全可以实现的,而且考虑到部署服 ...

  2. 基于JavaWeb的网页版邮箱系统设计与实现

    资源下载地址:https://download.csdn.net/download/sheziqiong/86790177 资源下载地址:https://download.csdn.net/downl ...

  3. 基于Vue的网页版录音并播放

    最近项目中需要实现一个效果,需要在网页上录制音频,并上传给后台,后续还需要做语音识别处理. 下面的表格罗列了我的前端项目中所使用的框架以及插件(本项目基于Vue): 插件名称 资源地址 Element ...

  4. 基于JavaScript的网页版【定期存款计算器 - DepositCaculator v1.0】

    使用方法:复制全部源代码,另存为.html文件. 免责声明:此程序为作者练习作品,不保证结果100%正确,对使用本程序造成的任何损失概不负责. <!DOCTYPE HTML PUBLIC &qu ...

  5. 基于python实现网页版微信API,包含终端版微信及微信机器人

    1.Demo 为了确保能正常运行示例脚本,请安装所需的第三方包. pip install -r requirements.txt 注:下面演示的图片与功能可能不是最新的,具体请看源码.

  6. 基于SSM的网页版进销存系统项目说明

    阿里云演示地址  演示账号:17705696620 ,演示密码:111111. 项目图片 项目背景 本人工作有8年时间,工作采用C语言进行金融POS终端的开发,主要是进行收单机构的支付平台的对接(85 ...

  7. 元宇宙体育俱乐部 #kodeclubs 基于threejs的网页版虚拟空间

    ‍ ‍ Mixlab 社区长期实战元宇宙,前文有总结 "元宇宙空间" 所具备的特质:开放多元的探索方式与创作工具:多维沉浸式的社交身份系统:综合的平台互通生态与机制. 元宇宙空间可 ...

  8. 最简单的基于Flash的流媒体示例 网页播放器(HTTP,RTMP,HLS)

    ===================================================== Flash流媒体文章列表: 最简单的基于Flash的流媒体示例:RTMP推送和接收(Acti ...

  9. 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)

    音视频领域,再次搜索,依然是大神雷霄骅的杰作.再次致敬,一路走好. ===================================================== Flash流媒体文章列表 ...

最新文章

  1. catv系统主要有哪三部分组成_你了解买车“三大件”之一的悬挂系统吗?家用车用什么悬挂系统?...
  2. symfony note
  3. Android异步消息处理机制完全解析,带你从源码的角度彻底理解
  4. js 里面的键盘事件对应的键码
  5. arcgis批量处理nc文件_气象数据处理——nc文件
  6. 未定义与 struct 类型的输入参数相对应的函数 fetch_引入鲁棒性作为连续参数,这种新损失函数实现了自适应、随时变换...
  7. mvc各层简单清晰的描述
  8. PSD分层情人节海报模板,让人眼前一亮
  9. 大学英语综合教程四 Unit 8 课文内容英译中 中英翻译
  10. wpa_supplicant中配置TTLS网络的phase2参数
  11. ARM到底是一家什么样的公司?
  12. sap 双计量单位_“双计量单位”解决方案解决不同入库问题
  13. MarkDown转Html在线转换(支持代码高亮,可复制到微信公众号、今日头条)
  14. Contrastive Loss
  15. 广西行政村数据shp_全国 shp 矢量数据汇总(四):全国行政区划基础矢量数据(精确到乡镇级别)...
  16. 【计算机网络】第三部分 数据链路层(15) 连接局域网、主干网和虚拟局域网
  17. ajax/jason
  18. Webpack中 的css-loader和less-loader
  19. Photoshop CC 2017 for Photographers: New Features Photoshop CC 2017为摄影师准备的新特性 Lynda课程中文字幕
  20. 有道 - 词典在线发音API链接(日语)

热门文章

  1. Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除
  2. Markdown 编辑器 Mark Text
  3. PICE(1):Programming In Clustered Environment - 集群环境内编程模式
  4. GUET七星瓢虫2022年考核题目c语言部分复现
  5. 宜居宜业,智慧社区赋能现代化城市建设
  6. 基于Matlab 与ADAMS联合的机器人系统仿真分析
  7. 开服侠服务器文件,我的世界开服侠
  8. CMMI组织结构和岗位保证
  9. 云原生时代高性能Java框架—Quarkus(一)
  10. 基于通信网关获取手机号码的核心设计与实现