基于php swoole扩展写的超简单聊天室

实例图:

基于php swoole扩展写的超简单聊天室_第1张图片
Paste_Image.png
  1. 服务端 Websocket.php
$ws_server = new swoole_websocket_server('192.168.238.129',9502);
//设置server运行时的参数
$ws_server->set(array(
    'daemonize' => true, //是否作为守护进程
    'log_file' => __DIR__ .'/logs/web_socket.log'
));
//监听WebSocket连接打开事件
$ws_server->on('open', function ($ws, $request) {
//    $ws->push($request->fd, $request->fd.' : '."Hello\n");
});

//监听WebSocket消息事件
$ws_server->on('message', function ($ws, $frame) {
    pushMessage($ws,$frame->data,$frame->fd);
});

//监听WebSocket连接关闭事件
$ws_server->on('close', function ($ws, $fd) {
    echo date('Y-m-d H:i:s').' 游客ID-'.$fd.' 退出了聊天室'."\r\n";
});

$ws_server->start();

//消息推送
function pushMessage($ws,$data,$fd){
    echo date('Y-m-d H:i:s').' 游客ID-'.$fd.':'.$data."\r\n";
    foreach($ws->connections as $dd){
        $ws->push($dd, $fd.' : '.$data);

    }
}

启动:
php websocket.php
重启机制:
先杀死进程,再重新启动
ps -eaf |grep "Websocket.php" | grep -v "grep"| awk '{print $2}'|xargs kill -9

2.客户端 websocket.html




    
    
    基于php swoole扩展写的超简单聊天室
    
    


    
基于php swoole扩展写的超简单聊天室

开两个浏览器 访问

基于php swoole扩展写的超简单聊天室_第2张图片
QQ图片20170117162053.png

你可能感兴趣的:(基于php swoole扩展写的超简单聊天室)