WebSocket是一種在客戶端和服務器之間進行實時雙向通信的協(xié)議。與傳統(tǒng)的HTTP請求-響應模式不同,WebSocket允許服務器主動向客戶端發(fā)送消息,而不需要客戶端發(fā)起請求。這種實時通信的特性使得WebSocket非常適合于需要實時更新數(shù)據(jù)的應用,如聊天室、實時游戲、股票市場等。WebSocket協(xié)議基于TCP協(xié)議,使用了類似HTTP的握手過程進行連接建立,并定義了一種簡單的消息格式進行數(shù)據(jù)傳輸。同時,WebSocket也提供了一些高級特性,如心跳機制、消息壓縮等,來增強通信的可靠性和效率。
服務端
本地搭建
windows系統(tǒng)
php
一:安裝cygwin?:在Windows上獲得Linux的感覺
1.1 打開安裝包:setup-x86_64.exe,點擊"下一頁"
1.2 選擇第一種方式,點擊"下一頁"
1.3 選擇安裝目錄(本歐電腦只有C ?。?!),點擊"下一頁"
1.4 選擇本地軟件包安裝目錄(可自建),點擊"下一頁"
1.5 選擇直接連接,點擊"下一頁"
1.6 選擇https://mirrors.163.com,點擊"下一頁"
1.7 選擇要安裝的組件,點擊"下一頁"
?注意:默認為跳過==不安裝,需要選擇版本才會安裝,漏裝的可以再次打開setup-x86_64.exe
//軟件包 版本
automake1.10 1.10.3-3
gcc-g++ 11.4.0-1
gdb 12.1-1
libpcre2-devel 10.42-1
pcre 8.45-1
pcre2 10.42-1
php-devel 7.3.7-2
wget 1.21.4-1
1.8 (演示用小歐重裝了下?。。。?,點擊"下一頁"
1.9 最好都兩個都選擇,點擊"完成"
二:查看是否安裝成功
2.1 點擊打開桌面cygwin
2.2 輸入?cygcheck -c cygwin
三:下載&安裝swoole擴展
3.1 查看php版本,輸入 php -v?
3.2 下載swoole
注意:php8以上下載5.0以上版本
3.3 解壓壓縮包到cygwin安裝目錄下的home文件夾下
3.4 cygwin面板進入home并執(zhí)行phpize追加擴展
3.5 配置構建和安裝環(huán)境 ./configure
3.6 make構建 (時間較長)
3.7 make test 對編譯結果進行測試
3.8 make install 安裝
3.9 手動打開.../etc/php.ini 文件
3.10 拉到文件最底添加?extension=swoole.so
3.11 面板輸入 php -m 查看擴展是否安裝成功
四:服務端文件編輯
4.1?swoole文檔
4.2 新建serve文件夾(可自定義文件夾)
4.3 打開serve文件夾并創(chuàng)建socket.php
socket.php
<?php
//創(chuàng)建WebSocket Server對象,監(jiān)聽0.0.0.0:9502端口,可自定義。
$ws = new Swoole\WebSocket\Server('0.0.0.0', 9502);
//監(jiān)聽WebSocket連接打開事件。
$ws->on('Open', function ($ws, $request) {
echo "{$request->fd} 用戶接入";
$ws->push($request->fd, "hello, welcome\n");
});
//監(jiān)聽WebSocket消息事件。
$ws->on('Message', function ($ws, $frame) {
echo "Message: {$frame->data}\n";
$ws->push($frame->fd, "server: {$frame->data}");
});
//監(jiān)聽WebSocket連接關閉事件。
$ws->on('Close', function ($ws, $fd) {
echo "client-{$fd} is closed\n";
});
$ws->start();
?>
4.4 運行 socket.php
五:測試
5.1 打開瀏覽器 按F12??
var wsServer = 'ws://127.0.0.1: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);
};
?5.2 正確狀態(tài)
瀏覽器
cygwin面板
文章來源:http://www.zghlxwxcb.cn/news/detail-781665.html
本篇干貨教程將會跟著小歐的經驗不斷更新哦,各位領導賞個三連吧??!文章來源地址http://www.zghlxwxcb.cn/news/detail-781665.html
到了這里,關于WebSocket---搭建與使用(手把手)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!