分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

php使用长连接

发布时间:2023-09-06 01:58责任编辑:傅花花关键词:暂无标签
  • 安装:
    composer ?require ?workerman/gateway-worker
  • 服务端:
    <?phprequire_once "vendor/autoload.php";use Workerman\Worker;use GatewayWorker\Gateway as gate;use GatewayWorker\BusinessWorker;use GatewayWorker\Register;use GatewayWorker\Lib\Gateway;use Medoo\Medoo;$super = array();$gateway = new gate("websocket://0.0.0.0:2345");$gateway->count = 4;$gateway->name = ‘gateway‘;$gateway->registerAddress = ‘127.0.0.1:1234‘;$business = new BusinessWorker();$business->name = ‘business‘;$business->count = 4;$business->registerAddress = ‘127.0.0.1:1234‘;$register = new Register(‘text://0.0.0.0:1234‘);$register->name = ‘register‘;class Events{public static function onConnect($client_id){ ???$arr = array( ???????????‘remote_ip‘=>$_SERVER[‘REMOTE_ADDR‘], ???????????‘remote_port‘=>$_SERVER[‘REMOTE_PORT‘], ???????????‘gate_ip‘=>$_SERVER[‘GATEWAY_ADDR‘], ???????????‘gate_port‘=>$_SERVER[‘GATEWAY_PORT‘], ???????????‘client_id‘=>$_SERVER[‘GATEWAY_CLIENT_ID‘] ???????); ???$ret = json_encode($arr); ???return GateWay::sendToCurrentClient($ret);}public static function onMessage($client_id, $message){ ???return GateWay::sendToCurrentClient($message);}public static function onClose($client_id){ ??GateWay::sendToAll("client[$client_id] logout\n");}}Worker::runAll();
  • 客户端:
    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title></head><body><input type="text"><br><input type="button" value="提交"><script> ???var ws = new WebSocket(‘ws://192.168.8.81:2345‘) ???ws.onopen = function(data) { ???????console.log(‘连接开始\n‘) ???} ???ws.onmessage = function(data) { ???????console.log(‘接收消息:‘+data.data) ???} ???ws.onclose = function(data) { ???????console.log(‘关闭连接\n‘) ???} ???ws.onerror = function(data) { ???????console.log(‘遇到错误\n‘) ???} ???var text = document.getElementsByTagName(‘input‘)[0] ???var button = document.getElementsByTagName(‘input‘)[1] ???button.onclick = function(){ ???????var val = text.value ???????ws.send(val) ???}</script></body></html>
  • 测试:
  • php使用长连接

    原文地址:http://blog.51cto.com/12173069/2126210

    知识推荐

    我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
    icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved