Centos安裝Swoole擴充套件
阿新 • • 發佈:2018-12-25
根據Swoole文件,直接install
pecl install swoole
但是報錯,需要root許可權。
sudo su
pecl install swoole
但是提了一個warning
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
於是,直接順手update一下吧
pecl channel-update pecl.php.net
查詢下php.ini的位置
php -i |grep php.ini
然後在php.ini中增加
extension=swoole.so
重啟下php
systemctl restart php
檢視下是否已經成功載入了swoole
php -m | grep swoole
Ps:到此swoole擴充套件就安裝完成了,因為我的程式碼執行成功,所以後面的步驟我就沒走下去了,就留給童鞋們自己試咯~
Test
新建一個檔案,我命名為SwooleServer.php檔案
程式碼如下:
<?php //建立websocket伺服器物件,監聽0.0.0.0:9502埠 $ws = new swoole_websocket_server("0.0.0.0", 9502); //監聽WebSocket連線開啟事件 $ws->on('open', function ($ws, $request) { var_dump($request->fd, $request->get, $request->server); $ws->push($request->fd, "hello, welcome\n"); }); //監聽WebSocket訊息事件 $ws->on('message', function ($ws, $frame) { echo "Message: {$frame->data}\n"; $ws->push($frame->fd, "server: {$frame->data}"); }); //監聽WebSocket連線關閉事件 $ws->on('close', function ($ws, $fd) { echo "client-{$fd} is closed\n"; }); $ws->start(); ?>
然後建立一個html檔案,用於模擬訪問的Client:
<!DOCTYPE html>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script language="javascript"type="text/javascript">
var wsServer = 'ws://192.168.10.10:9502';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
console.log("Connected to WebSocket server.");
};
websocket.onclose = function (evt) {
console.log("Disconnected");
};
websocket.onmessage = function (evt) {
console.log('Retrieved data from server: ' + evt.data);
};
websocket.onerror = function (evt, e) {
console.log('Error occured: ' + evt.data);
};
</script>
</html>
啟動服務:
php SwooleServer.php
訪問該Html,在控制檯中可以看到
Connected to WebSocket server.
Retrieved data from server: hello, welcome