> 文档中心 > PHP+websocket 实现数据推送,数据刷新

PHP+websocket 实现数据推送,数据刷新

后端代码

namespace tools;/** * Created by PhpStorm. * User: liangrujiang * Date: 2018/12/17 * Time: 12:14 * socket发送处理类 */class Socket{    private $post=xxxx;  //端口    private $host='xxxxxxx';  //ip    /**     * 构造函数     *     * @param string $host     * @param int    $port     * @param string $user     * @param string $password     * @param string $db_name     * @param string $charset     */    public function __construct($host='',$post='')    { if(!empty($host)){     $this->host=$host; } if(!empty($post)){     $this->post=$post; }    }    /*     * 消息发送     * */    public function send($service,$clientid,$data){ $send_data=array(); $send_data['service']=$service; $send_data['clientid']=$clientid; $send_data['data']=$data; $re=$this->sendsocket(json_encode($send_data)); return $re;    }    /*     * 发送消息到客户端     * */    public function sendsocket($send_data){ error_reporting(E_ALL); set_time_limit(0); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket host, $this->post); if ($result < 0) {     return false; } if(!socket_write($socket, $send_data, strlen($send_data))) {     return false; } while($out = socket_read($socket, 8192)) {     return $out; } socket_close($socket); return 1;    }}

 后端数据推送:

public function test(){    $clientId = "888888";    $socket = new Socket();    $service  = 'test';    $res = $socket->send($service,$clientId,'');}

前端数据接收:

let websock = '';    const initWebSocket =() =>{ //初始化weosocket websock = new WebSocket('ws://ip:端口'); websock.onmessage = websocketonmessage; websock.onopen = websocketonopen; websock.onerror = websocketonerror; websock.onclose = websocketclose;    }    const websocketonopen =() =>{ //连接建立之后执行send方法发送数据 let actions = {"clientid": "888888","clientkey": "888888","service": "auth","data": {}}; websocketsend(JSON.stringify(actions));    }    const websocketonerror = () =>{//连接建立失败重连 initWebSocket();    }    const websocketonmessage = (e) =>{ //数据接收 //数据处理接收    };    const websocketsend =(Data) =>{//数据发送 websock.send(Data);    }    const websocketclose = (e) =>{  //关闭 console.log('断开连接',e);    }