一、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类的使用相关推荐

  1. c# out原理 ref_3-Unity入门学习之C#基础2「数据类型」

    3-Unity入门学习之C#基础2 一.C#的数据类型 C#中,变量主要包含以下三种类型: 1.1.值类型 1.1.1.值类型介绍 ①结构[struct]:包含(整型.浮点型.128 位数据类型(de ...

  2. Python入门学习笔记1-Python基础

    Python入门学习笔记1-Python基础 前言:本文介绍了Python学习的前导知识概念以及必记基础函数,如善用help方法查看帮助文档,以及内置对象类型的概念以及常用函数的详解. 一.Pytho ...

  3. HFSS入门学习(二)

    HFSS入门学习(二) 本文是在前一篇文章:HFSS入门学习(一)链接:https://blog.csdn.net/and_future/article/details/108930315 的基础之上 ...

  4. 绘画如何入门?学绘画基础教程

    绘画如何入门?学绘画基础教程!没有基础的话建议先从素描开始临摹,然后用软件建模,接着过渡到线稿.素描作为最基础的课程,需要你从最最最最基础的地方来看,就是人体.为了帮助有兴趣的朋友理解大多数人会选择绘 ...

  5. TIA博途SCL入门学习(二)常用基本控制语句用法和举例

    TIA博途SCL入门学习(二)常用基本控制语句用法和举例 FOR循环语句 FOR循环可以指定循环的次数,在使用这种循环的时候需要先定义一个INT型变量,并指定计数范围,即循环次数,直到循环次数到达设定 ...

  6. ajax入门学习(二)小案例Demo1

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/55823800冷血之心的博客) ajax入门学习(一) ajax入门 ...

  7. html5教程 w3cschool,W3Cschool学习笔记——HTML5基础教程

    HTML5 建立的一些规则:新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立 ...

  8. C++入门学习(二):一些基础知识(关键字以及自增符号)

    目录 前言 2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 到圣诞节了,浅浅发一篇博文罢(过了一天了已经哈哈哈)坤 还可以看看其它的作品: 正文 1.关键字 1.1关键字(??) 2.自增运算符 ...

  9. 深度学习之Pytorch基础教程!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...

最新文章

  1. idea junit简单实践
  2. Markdown 学习笔记
  3. [密码学] 基础知识
  4. BZOJ4403 序列统计—Lucas你好
  5. inventory tool for Microsoft Uplates简介
  6. linux创建线程pthread_create函数
  7. nginx部署静态网站
  8. rs232转usb驱动_RS232的使用 最少需要3根线
  9. Tomcat的下载与安装
  10. 跨界营销策划案例合集(共13份)
  11. office表格怎么冻结前两行_office 2010下excel表格中冻结功能操作任意行的技巧
  12. Maya vray 3S皮肤材质球设置与材质节点连接
  13. 挂耳式骨传导蓝牙耳机,2021骨传导耳机推荐
  14. 企业成功的秘密:成为独角兽
  15. 基于visual c++之windows核心编程代码分析(24)IO控制、内核通信
  16. 生物信息学之抗癌药物反应论文阅读五:L1000+DTI
  17. IDEA离线插件安装包下载方法
  18. HAUTOJ 1262魔法宝石 优先队列
  19. 公众号榜单 | 2020·5月公众号行业排行榜重磅发布
  20. 各个专业375个国家级精品课程的网址

热门文章

  1. 计算机如何驱动无线网络,win7如何安装无线网卡驱动 安装无线网卡驱动的方法...
  2. 阿里最新php面试题及答案,面经网-阿里php面试题(四)
  3. 如何下载多段ts视频 m3u8 ffmpeg
  4. 移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除
  5. php从内存中获取源码_PHP源码分析之变量的存储过程分解
  6. java的多态怎么理解_JAVA多态的理解
  7. docker 容器端口访问不到_docker容器无法访问宿主机端口的解决
  8. linux内核开文件系统,内核必须懂(二): Linux文件系统初探
  9. idea 自动生成mybaits_IDEA利用mybatis-generator自动生成dao和mapper
  10. 文件服务器的文件设置只读,服务器设置文件为只读