网站建设服务商_凡科商城官网_线上商城_商标免费设计在线生成_微商城
当前位置:建站首页 > 新闻资讯 > 常见问题 >

swoole和websocket简易闲聊室开发设计

发表日期:2021-04-03 21:58文章编辑:jianzhan浏览次数: 标签:    

swoole和websocket简易闲聊室开发设计 公布:smiling 来源于: PHP粉絲网 加上 访问: 评价:0

最先,我觉得说下敲代码的一些习惯性,第一,一切可配备的主要参数或自变量必须提到一个config文档中。第二,编码中一定要有系统日志纪录和健全的出错并纪录出错。大破冲霄楼,swoole应当是每一个phper务必要掌握的,它称为再次界定了php。此闲聊室运用了swoole分布式系统而且多线程非堵塞的特性提升了程序的特性。

最先,界定一个 swoole_lock 和 swoole_websocket_server ,而且配备主要参数,实际主要参数
 // 对文档或数字能量数组开展锁实际操作,已做到同歩   $this- server = new swoole_websocket_server($this- addr, $this- port);      // swoole出示的Websocket Server   $this- server- set(array(    daemonize  =  0,    worker_num  =  4,    task_worker_num  =  10,    max_request  =  1000,    log_file  =  ROOT_PATH .  storage\\logs\\swoole.log      // swoole系统日志相对路径,务必是肯定相对路径   ));     $this- server- on( open , array($this,  onOpen ));   $this- server- on( message , array($this,  onMessage ));   $this- server- on( task , array($this,  onTask ));   $this- server- on( finish , array($this,  onFinish ));   $this- server- on( close , array($this,  onClose ));   //   // 起动服务   $this- server- start();  } 
 $message = array(    remote_addr  =  $request- server[ remote_addr ],    request_time  =  date( Y-m-d H:i:s , $request- server[ request_time ])   );   write_log($message);   } 
 case  INIT :   $this- users[$frame- fd] = $data- message; 、     // 纪录每一个连接的信息内容,一样不必试着复印出去看,由于你只有见到自身的连接信息内容   $message =  热烈欢迎  . $data- message .  添加了闲聊室 ;   $response = array(    type  =  1, // 1意味着系统软件信息,2意味着客户闲聊    message  =  $message   );   break;   case  chat :   case  CHAT :   $message = $data- message;   $response = array(    type  =  2, // 1意味着系统软件信息,2意味着客户闲聊    username  =  $this- users[$frame- fd],    message  =  $message   );   break;   default:   return false;   }    // 将信息内容交到task解决   $this- server- task($response);   }     public function onTask($server, $task_id, $from_id, $message)   {   //  // 迭代更新全部的顾客端连接,将信息消息推送以往。(假如你试着将 $this- server- connections 复印出去,那麼你能发觉他是空的。但那时候用 foreach 去循环系统时,它的确有效。)   foreach ($this- server- connections as $fd) {   $this- server- push($fd, json_encode($message));   }   $server- finish(  Task  . $task_id .  Finished  . PHP_EOL);   } 
 $username = $this- users[$fd];   // 释放出来顾客端,运用锁开展同歩   $this- lock- lock();   unset($this- users[$fd]);   $this- lock- unlock();     if( $username ) {   $response = array(    type  =  1, // 1意味着系统软件信息,2意味着客户闲聊    message  =  $username .  离去了闲聊室    );   $this- server- task($response);   }       write_log( $fd .   disconnected );   } 
// websocket   let address =  ws:// ?php echo CLIENT_CONNECT_ADDR .  :  . CLIENT_CONNECT_PORT ? ;   let webSocket = new WebSocket(address);   webSocket.onerror = function (event) {   alert( 网络服务器联接不正确,请稍后再试 );   };   webSocket.onopen = function (event) {   if(!sessionStorage.getItem( username )) {   setName();   }else {   username = sessionStorage.getItem( username )   webSocket.send(JSON.stringify({    message : username,    type :  init    }));   }   };   webSocket.onmessage = function (event) {   console.log(event);   let data = JSON.parse(event.data);   if (data.type == 1) {   $( #chat-list2 ).append( li  >详尽编码能够去我的github免费下载


php实例教程网——出示php实例教程免费下载資源  Powered by php粉絲网 2010-2015  网站协作
相关新闻

SEO公司seo优化的步骤和对策

[前言:]公司网站就非常于企业的信息内容展现服务平台,seo营销推广只是应用检索模块将网站...

日期:2021-04-01 浏览次数:121

初学者,微信公众号三个缺点和三个功效你毫无

近期有小伙子伴跟我说如何启用手机微信微信公众号,我仔细的告知她如何开微信公众号,她...

日期:2021-03-22 浏览次数:164

长尾关键词基础理论和SEO及互联网营销推广

回我国期内看了了近些年知名的The Long Tail, by Chris Anderson。简易的说,说白了长尾关键词基础...

日期:2021-03-18 浏览次数:197

广告宣传费用预算制订要开展综合性考虑到和衡

一般来讲,从现阶段中国公司的运行看来,有下列几类广告宣传推广费用预算计划方案能够参...

日期:2021-03-09 浏览次数:67

手机微信微信小程序开发设计和APP开发设计有什

在移动互联网网时期,手机微信微信小程序和APP是2个获得顾客总流量,完成赢利的关键端口...

日期:2021-03-06 浏览次数:117

腾迅入股投资京东商城商城系统和拼多多平台服

说到电子器件商务接待服务平台,大家禁不住会想起淘宝网天猫商城、京东商城商城系统、拼...

日期:2021-03-05 浏览次数:84