swoole之websocket初识
之前我们是不是用融云api写过一个聊天融云即时通讯在线聊天(yii2.0)
接下来为我们的聊天打基础,先了解下websocket
什么是websocket呢?
websocket是一个协议,它仅仅就是一个协议而已,跟我们所了解的http协议、https协议、ftp协议等等一样,都是一种单纯的协议。
相对于Http这种非持久连接而言,websocket协议是一种持久化连接,它是一种独立的,基于TCP的协议。基于websocket,我们可以实现客户端和服务端双向通信。
websocket是双向持久连接,客户端和服务端只需要第一次建立连接即可实现双向通信,说到这里,你肯定明白我们学习websocket要做什么了。没错,基于websocket,我们可以做一些通讯,推送相关的服务。
swoole内置的websocket服务器,异步非阻塞多进程,牛逼的swoole!
说了很多废话了,上代码
创建websocket服务器
|
|
- onOpen回调:客户端与服务端建立连接的时候将触发该回调,回调的第二个参数是swoole_http_request对象,包括了http握手的一些信息,比如GET\COOKIE等
- onMessage回调:这个是服务端收到客户端信息后回调,在该回调内我们调用了swoole_websocket_server::push方法向客户端推送了数据,注意哦,push的第一个参数只能是websocket客户端的标识
在来看看页面js
其实做到这里已经是一个简易的聊天室了