swoole websocket服務推送

2022-01-22 17:10:35 字數 2863 閱讀 4267

用過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:';

var websocket = new

websocket(wsserver);

websocket.onopen = function

(evt) ;

websocket.onclose = function

(evt) ;

websocket.onmessage = function

(evt) ;

websocket.onerror = function (evt,e) ;

ok了!

現在我們看到的是客戶端傳送資訊,伺服器應答並返回資料

有三個辦法:

1.使用swoole的定時器,定時傳送,可通過syc從資料庫獲取資料邏輯判斷後push傳送給客戶端

2.使用swoole中自帶框架

這個方法和方法3原理是一樣的,就是需要後台主動推送的時候,模擬乙個客戶端傳送訊息,可以是cli的指令碼,也可以是php的curl請求

<?php 

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端,發來的訊息"); #

客戶端可以看到

3.設定onrequest**用過workerman的都知道,workerman中就有這個獲取http的get,post 資料並sendto客戶端,在這裡swoole也可以實現

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閘道器是...