docker搭建swoole简易聊天室

  1. 启动容器
    docker run --name 'swooleChatDemo' -p 9501:9501 -p 81:80 -it -d kong36088/nginx-php7-swoole /bin/bash
  2. 进入容器
    docker exec -it [容器名/ID] /bin/bash
  3. 修改nginx配置
    vim /etc/nginx/sites-enabled/default
    将配置改为下图这样的
    将root /var/www/html/ChatRoom
    改为 root /var/www/html
  • 把ChatRoom删除
    修改配置

    然后重启nginx服务器
    service nginx restart
    image.png
  1. 进入项目根目录将文件放入
    cd /var/www/html/
    mkdir swoole
    vim index.php
    代码如下
  on('open',function(Swoole\WebSocket\Server $ws,$request){
    echo "新用户 $request->fd 加入。\n";
    $GLOBALS['fd'][$request->fd]['id'] = $request->fd;//设置用户id
    $GLOBALS['fd'][$request->fd]['name'] = '匿名用户';//设置用户名

});
//message
$ws->on('message',function(Swoole\WebSocket\Server $ws,$request){
    $msg = $GLOBALS['fd'][$request->fd]['name'].":".$request->data."\n";
    if(strstr($request->data,"#name#")){//用户设置昵称
        $GLOBALS['fd'][$request->fd]['name'] = str_replace("#name#",'',$request->data);

    }else{//进行用户信息发送
        //发送每一个客户端
        foreach($GLOBALS['fd'] as $i){
            $ws->push($i['id'],$msg);
        }
    }
});
//close
$ws->on('close',function($ws,$request){
    echo "客户端-{$request} 断开连接\n";
    unset($GLOBALS['fd'][$request]);//清楚连接仓库
});
$ws->start();


?>

vim index.html




    
    IM



  

swoole-websocket 及时通讯demo

index.html 和index.php的配置自己改成自己的


html

image.png

然后给权限

cd /var/www
chmod -R 777 html

运行服务端
cd /var/www/html
php index.php

访问客户端


image.png

the end

你可能感兴趣的:(docker搭建swoole简易聊天室)