用過workerman, 兩個字"好用",對於swoole最近有時間也研究研究
swoole的websocket 很好實現
如官網
ws_server.php
//執行程式建立websocket伺服器物件,監聽0.0.0.0:9502埠
$ws = new swoole_websocket_server("0.0.0.0", 9502);
//監聽websocket連線開啟事件
$ws->on('open', function ($ws, $request
) );
//監聽websocket訊息事件
$ws->on('message', function ($ws, $frame
) \n";
$ws->push($frame->fd, "server: ");
});//
監聽websocket連線關閉事件
$ws->on('close', function ($ws, $fd
) is closed\n";
});$ws->start();
php ws_server.php客戶端 a.html
var wsserver = 'ws:';ok了!var websocket = new
websocket(wsserver);
websocket.onopen = function
(evt) ;
websocket.onclose = function
(evt) ;
websocket.onmessage = function
(evt) ;
websocket.onerror = function (evt,e) ;
現在我們看到的是客戶端傳送資訊,伺服器應答並返回資料
有三個辦法:
1.使用swoole的定時器,定時傳送,可通過syc從資料庫獲取資料邏輯判斷後push傳送給客戶端
2.使用swoole中自帶框架
這個方法和方法3原理是一樣的,就是需要後台主動推送的時候,模擬乙個客戶端傳送訊息,可以是cli的指令碼,也可以是php的curl請求
<?php3.設定onrequest**用過workerman的都知道,workerman中就有這個獲取http的get,post 資料並sendto客戶端,在這裡swoole也可以實現define('debug', 'on');
define("webpath", str_replace("\\", "/",__dir__));
require __dir__ . '/framework-master/libs/lib_config.php';
$client = new swoole\client\websocket('127.0.0.1', 9502);
if (!$client->connect())
$client->send("我是php-client端,發來的訊息"); #
客戶端可以看到
swoole_websocket_server 繼承自 swoole_http_server
**如下
ser.php
<?php執行class
mywebsocket \n");
$this->fid=$request->fd; #
$request->fd fd
});
#監聽websocket訊息事件
$this->server->on('message', function ($server, $frame) \n";
foreach ($this->fid as
$fd)
});//監聽websocket連線關閉事件
客戶端html
ffmpeg nginx推流服務
新建目錄 用於存放nginx以及nginx rtmp moudle模組 mkdir usr local nginx cd usr local nginx wget wget 如果沒有wget命令的話執行下面的命令安裝 yum y install wget解壓 tar zxvf nginx 1.12....
django 整合個推 個推微服務閘道器架構實踐
在微服務架構中,不同的微服務可以有不同的網路位址,各個微服務之間通過互相呼叫完成使用者請求,客戶端可能通過呼叫n個微服務的介面完成乙個使用者請求。因此,在客戶端和服務端之間增加乙個api閘道器成為多數微服務架構的必然選擇。在個推的微服務實踐中,api閘道器也起著至關重要的作用。一方面,api閘道器是...
個推微服務閘道器架構實踐
在微服務架構中,不同的微服務可以有不同的網路位址,各個微服務之間通過互相呼叫完成使用者請求,客戶端可能通過呼叫n個微服務的介面完成乙個使用者請求。因此,在客戶端和服務端之間增加乙個api閘道器成為多數微服務架構的必然選擇。在個推的微服務實踐中,api閘道器也起著至關重要的作用。一方面,api閘道器是...