使用php的swoole架構,實現高效能長串連websocket__web

來源:互聯網
上載者:User

swoole的官網請見:http://www.swoole.com/
swoole-git:https://github.com/swoole/swoole-src 一.伺服器端: 1. 編輯server.php檔案內容如下:

<?php$reqs=array(); //保持用戶端的長串連在這個數組裡$serv = new swoole_websocket_server("192.168.2.115", 9502);//如下可以設定多連接埠監聽//$server = new swoole_websocket_server("0.0.0.0", 9501, SWOOLE_BASE);//$server->addlistener('0.0.0.0', 9502, SWOOLE_SOCK_UDP);//$server->set(['worker_num' => 4]);$serv->on('Open', function($server, $req) {    global $reqs;    $reqs[]=$req->fd;    echo "connection open: ".$req->fd."\n";    var_dump(count($reqs));//輸出長串連數});$serv->on('Message', function($server, $frame) {    global $reqs;    echo "message: ".$frame->data."\n";    foreach($reqs as $fd){            $server->push($fd, $frame->data);    }});$serv->on('Close', function($server, $fd) {    echo "connection close: ".$fd."\n";});$serv->start();
2. 啟動上面實現的websocket服務代碼
[songaimin@localhost Tests]$/usr/bin/php server.php
用戶端-同事開啟兩個瀏覽器類比多client: 3. 在瀏覽器console裡運行:
var wsl= 'ws://192.168.2.115:9502'ws = new WebSocket(wsl);//建立立一個串連//如下指定事件處理 ws.onopen = function(){ws.send('Test!'); };  ws.onmessage = function(evt){console.log(evt.data);/*ws.close();*/};  ws.onclose = function(evt){console.log('WebSocketClosed!');};  ws.onerror = function(evt){console.log('WebSocketError!');}; 
4. 在任意瀏覽器console裏手動執行:
ws.send(888);//看每個瀏覽器的內容console輸出應該是一樣的就實驗在成功了ws.close();//關閉串連

相關推薦文章:
swoole實現的即時聊天室 http://segmentfault.com/a/1190000003057118

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.