- WebSocket:是通过http或https与后台服务器握手,创建的一个Tcp底层长链接全双工通信。(传统的http或https是,由浏览器(用户)发起,后台服务器处理的短连接通信方式)
- WebSocket:是浏览器上js的相关技术。(关于WebSocket的js使用如下)
//> 1. 我们需要创建WebSocket对象,指定访问地址和端口。(WebSocket协议就是 ws)
var ws = new WebSocket('ws://192.168.1.169:2346'); //> 我们可以编码地址 encodeURL
//> 2. ws.onopen = callback; 链接成功的回调事件
ws.onopen = function(){ //> 链接成功,处理代码 };
//> 3. wb. onerror = callback; 链接失败的回调事件
wb.onerror = function(){ //> 链接失败,处理代码 };
//> 4. wb.onclose = callback; 链接断开的回调事件(可能是网络原因,也可能是后台服务器原因,这里需要和服务器一起判断,断定具体原因)
wb.onclose = function(){ //> 链接断开,处理代码 };
//> 5. wb.send(data); 发送消息到服务器端
we.send('hello WorkerMan !?');
//> 6. wb.onmessage = callback; 接受服务器段发送的消息,该回调函数有一个参数,服务器发送过来的数据
wb.onmessage = function(data){ //> 这里处理data服务器发送过来的数据 };
- WebSocket 参考代码:
WorkerMan后台实现代码:
- 在后台服务器WorkerMan中,我们也是使用的websocket协议
![]()
注意几点:
由于是在windows上,所以这里只启动了一个进程。
//> Worker::$id 范围 (0 ~ Worker::$count-1)
Worker::$id; //> 当前客户段所在的进程
比如上面的代码:当前所有链接进来的客户端,都是在进程为0的这个里面。
//> Worker::$connections保存的是Array;保存的是当前客户端请求所在的进程下的所有客户点链接信息。
//> 格式: array(id=>connection,id=>connection,...)
//> 保存的是当前进程下每个不同客户端的connection链接对象()。id则是当前客户点所链接的编号。
网友评论