从3月5号至今,一直在学习中,包括workerman、Python和Django。在workerman方面做了一个简单的聊天室小例子。代码就不拿出来分享了,现在的代码太简单了。下面还是继续说workerman。以问答的情况说一下最近学习的情况。
问:Workerman是什么?
答:Workerman是一款纯PHP开发的开源高性能的PHP socket 服务框架。
问:Workerman能做什么?
答:即时通讯类、物联网类、游戏服务器类、SOA服务化、其它服务器软件、中间件等
问:Workerman有哪些特点?
答:极简、稳定、高性能、分布式。
问:Workerman的工作原理
答:Worker是WorkerMan中最基本容器,Worker可以开启多个进程监听端口并使用特定协议通讯,类似nginx监听某个端口。每个Worker进程独立运作,采用Epoll(需要装event扩展)+非阻塞IO,每个Worker进程都能上万的客户端连接,并处理这些连接上发来的数据。主进程为了保持稳定性,只负责监控子进程,不负责接收数据也不做任何业务逻辑。
这些都是来自手册上的知识,以下是在开发过程中总结的经验。
-
windows上只能开一个进程,手册上有说明;
-
命令行模式启动服务;在代码中不要使用exit、die、sleep;
-
改代码之后要重启才能生效,必须重启;
-
连接时请保持端口一致;前端发送数据,使用对象格式;
-
后端返回数据,使用对象格式,前端需要转换;
-
runAll之后的代码都不会生效,必须放在runAll()之前运行;
-
如果并发大于1000,请安装扩展(event或者libevent扩展);