第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php 使用 Event 進行 socket 通信時如何添加多個事件??

php 使用 Event 進行 socket 通信時如何添加多個事件??

PHP
SMILET 2019-03-18 15:35:00
這邊使用的是 PHP 的 Event 擴展,使用事件的方式而不是使用 stream_select 的方式來進行 socket 通信: $tcp = '127.0.0.1:9005'; $server = stream_socket_server($tcp); // 超時時間設置一千年 $time = 1000 * 365 * 24 * 3600; $base = new EventBase(); $event = new Event($base , $server , Event::READ|Event::PERSIST , function($socket , $flag , $base) use($time){ $client = stream_socket_accept($socket); stream_set_blocking($client , false); $event = new Event($base , $client , Event::READ|Event::WRITE|Event::PERSIST , function($socket , $flag){ // 這個回調(diào)函數(shù)永遠不會觸發(fā) ..... // 郁悶 ..... // 導致,我只能利用 Event 監(jiān)聽 client 連接 // 卻無法監(jiān)聽客戶端消息,或向客戶端發(fā)送消息 // 不知道該如何解決?? $msg = fread($socket , 65535); var_dump($msg); }); // 注冊到 event $event->add($time); // 這個能正常輸出 var_dump("接收到客戶端連接"); } , $base); $event->add($time); $base->loop(EventBase::LOOP_NONBLOCK); $base->dispatch(); 本來是打算使用 libevent 擴展的,但是 php version >=6 的就沒法使用了,發(fā)覺 Event 這個擴展基本和 libevent 擴展一樣,于是使用,結(jié)果碰到上面的坑(問題在上面貼出來的代碼中,請耐心閱讀),不知道有沒有人使用過 Event 擴展的,能否說下,如何利用 Event 擴展替換 stream_select 提高 socket 通信 性能??
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

代碼沒看出問題, 是不是 EventBase::LOOP_ONCE 設錯了?
是每個客戶端連接都能觸發(fā)么? 還是連上一個程序就退了?

查看完整回答
反對 回復 2019-03-18
  • 2 回答
  • 0 關注
  • 598 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號