WorkerMan 入门学习之(二)基础教程-Connection类的使用
一、TcpConnection类 的使用
1、简单的TCP测试
Server.php
<?php require_once __DIR__.'/Workerman/Autoloader.php'; use Workerman\Worker; $worker = new Worker('websocket://0.0.0.0:80');// 连接回调 $worker->onConnect = function ($connection){echo "connection success\n"; }; // 接受发送消息 $worker->onMessage = function ($conn,$data){$conn->send("Hello World"); }; // 关闭连接 $worker->onClose = function ($connection){echo "connection close \n"; }; $worker::runAll();
测试结果:
服务端输出:
以下错误表示,里面的连接协议没有修改掉原因。
www@iZ23s8agtagZ:~$ telnet 127.0.0.1 8085 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. ^[[A^[[A HTTP/1.1 400 Bad Request<b>400 Bad Request</b><br>Invalid handshake data for websocket. <br> See <a href="http://wiki.workerman.net/Error1">http://wiki.workerman.net/Error1</a> for detail.Connection closed by foreign host.
2、黑白名单的访问
Server.php
<?php require_once __DIR__.'/Workerman/Autoloader.php'; use Workerman\Worker; $worker = new Worker('tcp://0.0.0.0:8085'); // 连接回调 $worker->onConnect = function ($connection){// IP 白名单验证if($connection->getRemoteIP() != '127.0.0.1'){$connection->close("IP Address Forbidden");} }; // 接受发送消息 $worker->onMessage = function ($conn,$data){$conn->send("Hello World"); }; // 关闭连接 $worker->onClose = function ($connection){echo "connection close \n"; }; $worker::runAll();
开启Workerman服务
正确的访问:
非本地地址访问:
二、AsyncTcpConnection类 的使用
Server.php
<?php require_once __DIR__.'/Workerman/Autoloader.php'; use Workerman\Worker; $worker = new Worker('websocket://0.0.0.0:443'); // Workerman 启动的回调,这里传递的是Worker对象 $worker->onWorkerStart = function ($worker){echo "onWorkerStart success"; }; // 连接回调 $worker->onConnect = function ($connection){$connection_baidu = new \Workerman\Connection\AsyncTcpConnection('tcp://www.baidu.com:443');// 百度的数据发送给浏览器。返回数据后,使用的数据要use 进来,$connection_baidu->onMessage = function ($connection_baidu,$data) use ($connection){$connection->send($data);};// 浏览器接受的数据发送给百度$connection->onMessage = function ($connection,$data) use ($connection_baidu){$connection_baidu->send($data);};$connection_baidu->connect(); }; // 接受发送消息 $worker->onMessage = function ($conn,$data){$conn->send("Hello World"); }; // 关闭连接 $worker->onClose = function ($connection){echo "connection close \n"; };//Workerman 停止回调 $worker->onWorkerStop = function ($worker){echo "onWorkerStop success"; }; $worker::runAll();
WorkerMan 入门学习之(二)基础教程-Connection类的使用相关推荐
- c# out原理 ref_3-Unity入门学习之C#基础2「数据类型」
3-Unity入门学习之C#基础2 一.C#的数据类型 C#中,变量主要包含以下三种类型: 1.1.值类型 1.1.1.值类型介绍 ①结构[struct]:包含(整型.浮点型.128 位数据类型(de ...
- Python入门学习笔记1-Python基础
Python入门学习笔记1-Python基础 前言:本文介绍了Python学习的前导知识概念以及必记基础函数,如善用help方法查看帮助文档,以及内置对象类型的概念以及常用函数的详解. 一.Pytho ...
- HFSS入门学习(二)
HFSS入门学习(二) 本文是在前一篇文章:HFSS入门学习(一)链接:https://blog.csdn.net/and_future/article/details/108930315 的基础之上 ...
- 绘画如何入门?学绘画基础教程
绘画如何入门?学绘画基础教程!没有基础的话建议先从素描开始临摹,然后用软件建模,接着过渡到线稿.素描作为最基础的课程,需要你从最最最最基础的地方来看,就是人体.为了帮助有兴趣的朋友理解大多数人会选择绘 ...
- TIA博途SCL入门学习(二)常用基本控制语句用法和举例
TIA博途SCL入门学习(二)常用基本控制语句用法和举例 FOR循环语句 FOR循环可以指定循环的次数,在使用这种循环的时候需要先定义一个INT型变量,并指定计数范围,即循环次数,直到循环次数到达设定 ...
- ajax入门学习(二)小案例Demo1
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/55823800冷血之心的博客) ajax入门学习(一) ajax入门 ...
- html5教程 w3cschool,W3Cschool学习笔记——HTML5基础教程
HTML5 建立的一些规则:新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立 ...
- C++入门学习(二):一些基础知识(关键字以及自增符号)
目录 前言 2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 到圣诞节了,浅浅发一篇博文罢(过了一天了已经哈哈哈)坤 还可以看看其它的作品: 正文 1.关键字 1.1关键字(??) 2.自增运算符 ...
- 深度学习之Pytorch基础教程!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...
最新文章
- idea junit简单实践
- Markdown 学习笔记
- [密码学] 基础知识
- BZOJ4403 序列统计—Lucas你好
- inventory tool for Microsoft Uplates简介
- linux创建线程pthread_create函数
- nginx部署静态网站
- rs232转usb驱动_RS232的使用 最少需要3根线
- Tomcat的下载与安装
- 跨界营销策划案例合集(共13份)
- office表格怎么冻结前两行_office 2010下excel表格中冻结功能操作任意行的技巧
- Maya vray 3S皮肤材质球设置与材质节点连接
- 挂耳式骨传导蓝牙耳机,2021骨传导耳机推荐
- 企业成功的秘密:成为独角兽
- 基于visual c++之windows核心编程代码分析(24)IO控制、内核通信
- 生物信息学之抗癌药物反应论文阅读五:L1000+DTI
- IDEA离线插件安装包下载方法
- HAUTOJ 1262魔法宝石 优先队列
- 公众号榜单 | 2020·5月公众号行业排行榜重磅发布
- 各个专业375个国家级精品课程的网址
热门文章
- 计算机如何驱动无线网络,win7如何安装无线网卡驱动 安装无线网卡驱动的方法...
- 阿里最新php面试题及答案,面经网-阿里php面试题(四)
- 如何下载多段ts视频 m3u8 ffmpeg
- 移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除
- php从内存中获取源码_PHP源码分析之变量的存储过程分解
- java的多态怎么理解_JAVA多态的理解
- docker 容器端口访问不到_docker容器无法访问宿主机端口的解决
- linux内核开文件系统,内核必须懂(二): Linux文件系统初探
- idea 自动生成mybaits_IDEA利用mybatis-generator自动生成dao和mapper
- 文件服务器的文件设置只读,服务器设置文件为只读