workerman

Posted jw-yahui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了workerman相关的知识,希望对你有一定的参考价值。

yum install php-process即可安装pcntl和posix扩展

https://www.workerman.net/doc

 

需要了解的基本概念

 

1、TCP传输层协议

TCP是一种面向连接的、可靠的、基于IP传输层协议。TCP传输层协议一个重要特点是TCP是基于数据流的,客户端的请求会源源不断的发送给服务端,服务端收到的数据可能不是一个完整的请求,也有可能是多个请求连在一起。这就需要我们在这源源不断的数据流中区分每个请求的边界。而应用层协议主要是为请求边界定义一套规则,避免请求数据混乱。

2、应用层协议

应用层协议(application layer protocol)定义了运行在不同端系统上(客户端、服务端)的应用程序进程如何相互传递报文,例如HTTP、WebSocket都属于应用层协议。例如一个简单的应用层次协议可以如下{"module":"user","action":"getInfo","uid":456}\n"。此协议是以"\n"(注意这里"\n"代表的是回车)标记请求结束,消息体是字符串。

3、短连接

短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。像WEB网站的HTTP服务一般都用短连接。

短连接应用程序开发可以参考基本开发流程一章

4、长连接

长连接,指在一个连接上可以连续发送多个数据包

注意:长连接应用必须加心跳,否则连接可能由于长时间不活跃而被路由节点防火墙断开。

长连接多用于操作频繁,点对点的通讯的情况。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多。所以长连接在每个操作完后都不断开,下次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。

当需要主动向客户端推送数据时,例如聊天类、即时游戏类、手机推送等应用需要长连接。 长连接应用程序开发可以参考Gateway/Worker开发流程

 

以上是关于workerman的主要内容,如果未能解决你的问题,请参考以下文章

Workerman-文件监控-牛刀小试

使用workerman实现在线聊天-第一版

WorkerMan源码分析 - 实现最简单的原型

workerman实现简单弹幕的方法

WorkerMan 入门学习之基础教程-Timer类的使用

Workerman自动加载等问题