首页 > 作文

如何利用swoole搭建一個簡易聊天室

更新时间:2023-04-07 11:59:28 阅读: 评论:0

<?phpclass chat{    const host = '0.0.0.0';//ip地址 0.0.0.0代表接受所有ip的访问    const part = 82;//端口号    private $rver = null;//单例存放websocket_rver对象    private $connectlist = [];//客户端的id集合        public function __construct()    {        //实例化swoole_websocket_rver并存储在我们chat类中的属性上,达到单例的设计        $this->rver = new swoole_websocket_rver(lf::host, lf::part);        //监听连接事件        $this->rver->on('obecauofyou中文歌词pen', [$this, 'onopen']);        //监听接收消息事件        $this->rver->on('message', [$this, 'onmessage']);        //监听关闭事件        $this->rver->on('clo', [$this, 'onclo']);        //设置允许访问静态文件        //$this->rver->t([         //   'document_root' => '/grx/swoole/public',//这里传入静态文件的目录        //    'enable_static_handler' => true//允许访问静态文件        //]);        //开启服务        $this->rver->start();    }        /**     * 连接成功回调函数     * @param $rver     * @param $request     */    public function onopen($rver, $request)    {        echo $request->fd . '连接了' . php_eol;//打印到我们终端        $this->connectlist[] = $request->fd;//将请求对象上的fd,也就是客户端的唯一标识,可以把它理解为客户端id,存入集合中    }    /**     * 接收到信息的回调函数     * @param $rver     * @param $frame     */    public function onmessage($rver, $frame)    {        echo $frame->fd . '来了,说:' . $frame->data . php_eol;//打印到我们终端        //将这个用户的信息存入集合        foreach ($this->connectlist as $fd) {//遍历客户端的集合,拿到每个在线的客户端id            //将客户端发来的消息,推送给所有用户,也可以叫广播给所有在线客户端            $rver->push($fd, json_encode(['no' => $frame->fd, 'msg' => $frame->data]));        }    }    /**     * 断开连接回调函数     * @param $rver     * @param $fd     */    public function onclo($rver, $fd)    {        echo $fd . '走了' . php_eol;//打印到我们终端        $this->connectlist = array_diff($this->connectlist, [$fd]);//将断开了的客户端id,清除出集合    }    }$obj = new chat();
<!doctype html><hqq号码找回tml><head>    <meta chart="utf-8">    <title>聊天室</title>    <script src="http://libs.baidu.com/jqu科技小发明制作ery/1.9.1/jquery.min.js"></script></head><body><textarea class="log" style="width: 100%; height: 500px;">=======聊天室======</textarea><input type="button" value="连接" onclick="link()"><input type="button" value="断开" onclick="d事理说明文is()"><input type="text" id="text"><input type="button" value="发送" onclick="nd()"><script>    function link(){        var url='ws://148.70.98.236:82';        socket=new websocket(url);        socket.onopen=function(){log1('连接成功')}        socket.onmessage=function(msg){log(msg.data);console.log(msg);}        socket.onclo=function(){log1('断开连接')}    }    function dis(){        socket.clo();        socket=null;    }    function log1(var1) {        $('.log').append(var1+'\r\n');    }    function log(var1){      var  v=$.parjson(var1)        $('.log').append('用户'+v['no']+'说:'+v['msg']+'\r\n');    }    function nd(){        var text=$('#text').val();        socket.nd(text);    }    function nd2(){        var json = json.stringify({'type':'php','msg':$我从什么中学到了语文('#text2').attr('value')})        socket.nd(json);    }</script></body></html>

本文发布于:2023-04-07 11:59:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/03142da7255931ee7931392c222ab615.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:如何利用swoole搭建一個簡易聊天室.doc

本文 PDF 下载地址:如何利用swoole搭建一個簡易聊天室.pdf

下一篇:返回列表
标签:客户端   终端   在线   回调
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图