MENU

Echo Pool

2025 年 04 月 22 日 • 阅读: 135 • 技术,项目

Echo Pool

一款用C++编写的在线台球游戏

客户端下载v1.0(.exe):

此处内容需要评论回复后方可阅读

大一有一个高级语言程序课设的课程,有三个选项:祖玛、贪吃蛇、黄金矿工。我觉得这三个都不太好,所以一再申请做了自己想做的游戏-在线台球

击球界面截图

其他照片在标签页内展示

主界面截图
登陆界面截图
充值界面截图
付款界面截图
皮肤商城截图

项目结构

服务端: API(使用php连接MySQL)、WS服务(Python)

// 在conn.php中设置自己的数据库帐密
<?php
// 1.设置连接数据库的信息
$local = "localhost";// 一般都填localhost
$username = "username"; // 数据库用户名,需要自己修改
$password = "password"; // 数据库密码,需要自己修改
$dbname = "dbname"; // 要连接的数据库名,需要自己修改
// 2.连接数据库
$conn = new mysqli($local, $username, $password, $dbname);

// 设置 UTF-8MB4 编码
$conn->set_charset("utf8mb4");

header('Content-Type: application/json; charset=UTF-8');

?>
# server.py
...
# 占用25689这个端口,可以修改
async def start_server(self, host='0.0.0.0', port=25689):
        while True:
            try:
                async with websockets.serve(
                    self.connection_handler,
                    host,
                    port,
                    ping_interval=5,
                    ping_timeout=30,
                    max_size=1024 * 1024
                ):
                    print(f"服务器运行于 ws://{host}:{port}")
                    await asyncio.Future()
            except Exception as e:
                print(f"服务器发生错误: {e}, 5 秒后重启...")
                await asyncio.sleep(5)
...

客户端: C++编译生成的exe

部署

先下载源码,下载地址Github项目地址或者文末网盘链接。

1. 将sql/data.sql导入Mysql数据库

2. 将php-server内的文件导入php服务器,然后修改conn.php中的Mysql数据库账号密码

3. 设置Nginx伪静态

location / {
    try_files $uri $uri/ /$uri.php?$query_string;
}

4. 使用Python启动ws-server,在ws-server/server中python server.py

5. 设置Nginx反向代理

    location /server {
        proxy_pass http://127.0.0.1:25689/;  # 将请求转发到 WebSocket 服务器
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        # 传递真实客户端信息[3,8](@ref)
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 保持长连接配置
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
        keepalive_timeout 75;
        # TCP优化
        tcp_nodelay on;
        tcp_nopush on;
    }

6. 设置客户端,在client/include/game_config.h中修改API_URL为你的域名,然后编译即可。

7. 使用Windows系统,在client目录下运行make编译,编译好的文件在build文件夹中

8. build文件夹中即有Client端的.exe文件

下载地址

Github项目地址:https://github.com/lhl77/billiards-online-cpp
项目网盘下载:

此处内容需要评论回复后方可阅读

最后编辑于: 2025 年 09 月 06 日
返回文章列表 打赏
本页链接的二维码
打赏二维码