#### WebSocket是HTML5開始提供的一種在單個 TCP 連接上進行全雙工通訊的協議,主要用于客戶端與服務器雙方及時通信。
>[info] 簡單的js實現
~~~
ws = new WebSocket("ws://www.push.com:2346");
ws.onopen = function() {
alert("連接成功");
ws.send('tom');
alert("給服務端發送一個字符串:tom");
};
ws.onmessage = function(e) {
alert("收到服務端的消息:" + e.data);
};
~~~
>[info] WebSocket的javascript基本操作
~~~
if ("WebSocket" in window){
alert("您的瀏覽器支持 WebSocket!");
// 打開一個 web socket
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function()
{
// Web Socket 已連接上,使用 send() 方法發送數據
ws.send("發送數據");
alert("數據發送中...");
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
alert("數據已接收...");
};
ws.onclose = function()
{
// 關閉 websocket
alert("連接已關閉...");
};
}else{
// 瀏覽器不支持 WebSocket
alert("您的瀏覽器不支持 WebSocket!");
}
~~~
### 關于PHP
Swoole
PHP 還局限于做 Web 網站嗎?Swoole 是一個異步并行的通信引擎,作為 PHP 的擴展來運行。Node.js 的異步回調 Swoole 有,Go語言的協程 Swoole 也有,這完全顛覆了對 PHP 的認知。
使用 Swoole PHP 可以實現常駐內存的 Server 程序,可以實現 TCP 、 UDP 異步網絡通信的編程開發。過去PHP只能做一個 Web 網站,現在使用 Swoole 可以做 Java 、C++ 才能實現的通信服務,比如 WebSocket 即使通信、聊天、推送服務器、RPC 遠程調用服務、網關、代理、游戲服務器等。
可以說,Swoole 是每位 PHPer 都需掌握的必備技能。但 Swoole 的使用門檻對新手來說相對較高,需要付出一定的精力成本。
- 文檔目錄
- 一、PHP筆記
- 安裝及部署工具
- Oneinstack使用筆記
- LNMP使用筆記
- Composer使用筆記
- Composer包制作和應用
- Windows下的PHP
- Docker安裝MySQL
- PHP知識匯總
- PHP8.0特性
- PHP雜項總結
- empty測試
- 阿里云SDK使用文檔
- Swoole學習筆記
- PHP系統操作函數
- PHP系統探針
- PHPExcel導入導出數據
- PHP正則
- 數組函數
- Workerman小記
- trait
- 抽象類
- MVC設計模式
- PHP連接Access數據庫
- guzzlehttp
- PHP加密方法
- PHP框架集合
- ThinkPHP
- YII
- Laravel使用筆記
- easyswoole
- TP5.1的正確使用方式
- ThinkPHP6.0隊列
- PHP相關技術
- JWT
- 支付筆記
- PHP新寫法
- PHP常用函數
- 二、運維筆記
- CentOS
- 常用命令
- 文件操作類
- 問題記錄
- iptables
- 壓縮解壓命令
- CentOS8筆記
- Linux常用信息查看命令
- curl
- dig&nslookup
- 運維技術
- DNS體系
- CDN體系
- Haproxy負載均衡
- Ansible筆記
- crontab
- LVS簡單理解
- 日志分析
- Python系統監控
- Linux系統監控
- 負載均衡方法
- Shell腳本示例
- ntp同步時間
- 寶塔運維
- Goaccess的使用
- Supervisor使用
- 用戶管理
- RSA證書登錄
- 網絡技術
- DHCP
- IPv6學習
- 網絡技術筆記
- 抓包筆記
- IPv4
- TCP
- IP基礎知識總結
- IPv6地址庫
- IPv6地址列表
- 云產品
- 對象存儲大比拼
- 靜態站點部署方案
- Apache配置總結
- Docker筆記
- 三、Web體系
- HTTP
- HTTP頭字段總結
- head頭部細講
- 跨域請求
- HTTPS
- HTTP狀態碼表
- 關于IP的HTTP頭部
- HTTP Method 詳細解讀
- HTTP的表單提交方式
- Vue
- Vue學習筆記
- ElementUI筆記
- Vue項目部署
- vue+layui
- vue-resource的使用
- axios的使用
- vue-element-admin
- Electron打包Vue
- Javascript
- JavaScript遍歷json總結
- jQuery方法匯總
- WebSocket
- 案例:使用JavaScript獲取用戶內網IP地址
- JS導出Excel
- 前端筆記
- Viewer.js
- CSS筆記
- LayUI使用筆記
- 大屏系統
- 前端大屏系統
- 大屏預覽
- 大屏HTML源碼
- 常見Web攻擊
- OAuth2.0
- 綜合知識
- 四、數據庫
- MySQL
- MySQL數據庫備份
- MySQL用戶管理
- JSON字段查詢
- mysqldump導入導出數據庫總結
- MySQL數據類型
- MySQL數據庫案例總結
- MySQL8.0.11安裝筆記
- Binlog筆記
- Navicat的使用
- MySQL常用內置函數
- Windows安裝mysql8.0
- 存儲過程
- 字符集
- MySQL主從復制
- PHPEnv一鍵安裝MySQL
- Redis
- Redis筆記
- Redis在Windows的使用
- phpredis教程
- Redis事務
- redis集群
- Redis主從復制
- MongoDB
- MongoDb匯總
- 遇到問題
- 備份與還原
- 語法
- MongoDB安裝
- Postgresql
- 安裝
- PG筆記
- PG在ThinkPHP中使用
- PG數據庫和MySQL數據庫對比
- Elasticsearch
- 查詢
- 數據格式
- 五、Nginx
- Nginx筆記
- 反向代理&負載均衡
- Nginx配置文件全面解析
- https/ssl配置
- 日志切割
- Openresty筆記
- 變量解釋
- Tengine
- Nginx語法
- 文件服務器
- 六、其他語言
- Node.js
- Express
- 安裝問題
- pm2的使用
- Python
- Tornado
- pip的使用
- Scrapy
- 多進程
- Python導出本地Excel
- Requests庫
- Socket庫
- Django
- 問題記錄
- Python虛擬環境
- Fabric庫
- Flask
- MongoDB的使用
- uwsgi部署
- Gunicorn部署
- Flask的虛擬環境
- Java
- JDK安裝
- JSP頁面
- JSP項目部署
- 學習計劃
- Java學習記錄
- Java相關狀態碼
- Jfinal筆記
- Websocket
- 客戶端JavaScript
- Workman
- Swoole
- .NET
- WPF
- PowerShell
- 文件操作
- Interop.Excel
- DotNet筆記
- Go
- beego
- gin
- 備份MySQL數據庫至OSS
- 對象存儲比較更新
- 使用Go做一個靜態文件服務器
- Ruby
- 七、雜項
- 其他筆記
- 義務勞動系統操作說明
- USB電流筆記
- Git使用筆記
- git常用命令列表
- git碼云配置hook鉤子實現自動部署
- 搭建git服務器
- 命令手冊
- git鉤子
- 自建Git服務器配置自動部署
- 算法匯總
- 時間復雜度和空間復雜度的簡單講解
- 加密算法
- 測試
- AB測試
- OFFICE
- Excel
- 數學筆記
- 對數
- 指數
- 三角函數
- 我用latex寫公式
- 博客生成器
- markdown轉html
- Jekyll
- Hugo
- 附:測試四大git-pages
- Hexo
- svn使用簡記
- 正則表達式
- 草稿
- 個人成長篇
- 自創JS加密PHP解密程序
- 有趣的github項目
- 編輯器使用習慣
- 電腦選購指南
- 服務器重裝備忘錄