PHP+swoole 聊天窒 五子棋斗地主

PHP 聊天窒源代码 五子棋源代码 斗地主源代码

基于swoole的开发的聊天,五子棋,斗地主功能

各功能系统界面

  • 聊天功能界面
    在线聊天
  • 五子棋界面
    五子棋
  • 斗地主界面
    在线斗地主

聊天系统包括的功能:

  1. 实时发送消息,消息的内容类型:纯文本消息,表情消息,图片消息(独发方式),发送附件(独发方式),发送粘帖板图片
  2. 发送消息类型:私发消息,群发消息,撤回消息
  3. 群组功能:创建群组,拉好友进群组,群组创建者删除群组成员
  4. 好友功能:查找好友,实时发送好友请求,实时处理好友请求,实时返回处理结果
  5. 个人信息:个人信息修改,头像上传,密码修改
  6. 连接断开系统不会自动连接,需要手动连接(刷新页面即可重新连接)

五子棋的功能点:

  1. 棋局列表,棋局人员实时状态
  2. 棋局页实时状态
  3. 下棋部分,目前只能下棋,直至分出胜负,不支持悔棋,不支持求和
  4. 每次下棋后会创建定时器,超时未下系统会自动判断对方赢得此场比赛
  5. 连接断开系统不会自动连接,需要手动连接(刷新页面即可重新连接)

斗地主功能点:

  1. 牌局列表,棋局人员实时状态
  2. 牌局页实时状态
  3. 坐入桌子指定位置
  4. 实时同步发牌,抢地主,加倍,打牌,打牌提醒,以及最终打牌结果
  5. 倒计时显示(倒计时暂时只是显示,没有处理后台逻辑)
  6. 打牌结果显示,金币结算(金币结算结果还未在前台展示,有没金币暂时都可以打牌)

源代码地址:

https://github.com/zlilizh/php_chat

开发环境(基于docker布署):

php7.2 (docker pull zlilizh/phpfpm7.2 )
swoole 4.7(swoole环境的PHP单独布署) (docker pull zlilizh/swlphp7.2)
nginx latest (docker pull nginx )
mysql 5.7 (docker pull mysql:5.7.34)
redis latest (docker pull redis)

下面是以在win10系统的docker中布署此项目的例子

1,拉取镜像

docker pull zlilizh/swlphp7.2
docker pull zlilizh/phpfpm7.2
docker pull nginx
docker pull mysql:5.7.34
docker pull redis

2,创建项目目录与文件:

D:\dkml\phpfpm72_conf #PHP7.2配置目录
D:\dkml\mysql5734_data #mysql5.7数据目录
D:\dkml\xm\ #代码存放目录 把代码拉取到此目录 拉完后的目录就是D:\dkml\xm\php_chat (chat_cli与chat_ser都放在此目录下)
D:\dkml\nginx #nginx相关配置目录 在nginx目录下面创建 nginx.conf 默认配置如下:

user  nginx;
worker_processes  auto;
error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    include /etc/nginx/conf.d/*.conf;
}

3,启动容器&安装依赖:
  • 启动nginx:
docker run -d --name mynginx -p 80:80 -v d/dkml/nginx/nginx.conf:/etc/nginx/nginx.conf -v d/dkml/nginx/logs:/var/log/nginx -v d/dkml/xm:/usr/share/nginx/html -v d/dkml/nginx/conf/:/etc/nginx/conf.d --privileged=true nginx
  • 启动mysql:
docker run -p 3306:3306 --name mysql5734 -v d/dkml/mysql5734_data/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34
  • 启动swooles:
docker run -it --name myswoole -p 9501:9501 -v d/dkml/xm:/usr/share/swl zlilizh/swlphp7.2 sh
  • 启动php7.2:
docker run -d --name myphp72fpm --restart always --privileged=true -p 9000:9000 -v d/dkml/xm:/usr/share/nginx/html -v d/dkml/phpfpm72_conf:/usr/local/etc/php/conf.d zlilizh/phpfpm7.2
  • 启动redis
docker run -d --name myredis -p 6379:6379 redis:latest
  • php7.2的容器都需要额外配置下pdo_mysql gd redis(swoole镜像已经安装了)这三个扩展, 手动在D:\dkml\phpfpm72_conf 目录下建一个docker-php-ext.ini 添加如下配置
    extension=pdo_mysql.so
    extension=gd.so
    extension=redis.so
    date.timezone=Asia/Shanghai
    
4,确定域名,配置nginx虚拟主机
  • 确定域名
    当前配置以 www.csct.com 为例,修改本地host 配置域名
    127.0.0.1 www.csct.com
    
  • 配置nginx虚拟主机
    在D:\dkml\nginx\conf\ 目录下面创建 default.conf文件,添加如下配置
    server {
        listen       80;
        server_name  www.csct.com;
        root   /usr/share/nginx/html/php_chat/chat_cli;
    
        location / {
            index  index.php index.html index.htm;
            autoindex  off;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
       location ~ ^/assets/.*\.php$ {
            deny all;
        }
    
        location ~ \.php(.*)$ {
            root           html;
            fastcgi_pass   主机IP:9000; #把主机IP换成自己的IP
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/php_chat/chat_cli$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  /usr/share/nginx/html/php_chat/chat_cli$fastcgi_path_info;
            include        fastcgi_params;
        }
    
       location ~* /\.ht {
            deny all;
        }
    }
    
5,配置代码
  • 修改chat_cli的配置文件:
    重命名 chat_cli/config/ 目录下 db_config_bast.phpdb_config.php
    并修改对应的配置
    WEB_URL 本地访问URL,与nginx里面的配置要一致
    $db_config #DB相关配置
    $web_config[‘ws_addr’] #是websockt地址 主机IP:9501
    $r_cof #Redis的相关配置
  • 修改chat_ser的配置文件:
    重命名 ==chat_ser/config/==目录下 main_bast.phpmain.php
    修改 $db_config g与 $r_cof即可
6,导入数据库

数据库名:chat,导入D:\dkml\xm\php_chat\chat.sql文件
到此项目都已经配置完成

启动项目

进入swoole容器并启动监听

cd /usr/share/swl/php_chat/chat_ser  
php index.php 

浏览器里面输入
www.csct.com

默认账号
admin, cs,mingr,kakax,yzbb,yzby,zhuj等,其它账号可以表xt_member中查看,密码统一是123456

系统部分界面

聊天窒

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五子棋

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

斗地主

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值