Workerman

使用nssm部署windows服务启动应用

喜你入骨 提交于 2020-11-07 10:08:52
swoole和workerman他们都可以实现即时通信的功能,这里我简单的就workman作为windows服务器启动为例说哈吧。直接进入正题: 下载这个聊天室项目 workerman聊天室 http://www.workerman.net/workerman-chat 点击 start_for_win.bat 会出现一个黑窗口 在浏览器中浏览http://127.0.0.1:55151就可以看到聊天室页面啦!但是当我们关闭黑窗口的时候会发现在浏览端口55151时就退出了!当项目真正部署是我想这样是很不安全的,所以我们要找到一种方法来实现守护进程,将这个 bat文件当做windows服务来运行,下面我们使用nssm,用nssm来将bat转化为服务 先下载 nssm 软件,这个在百度上直接搜索一个就可以啦! 下载下来之后是一个压缩包解压找到对应你自己系统的32/64位nssm(在cmd窗口中找到该路径下的nssm)执行 nssm install <服务名> 例如: nssm install workerman(自定义服务名) 然后回车出现nssm的配置界面 在界面中填写你的 项目中的bat文件地址,例如: 点击 install service ,比如: 注意:360会拦截服务,直接忽略即可 当显示successfully的时候说明服务已经安装成功啦!我们可以点击我的电脑-》管理-

workman 和swoole 有哪些区别和异同

空扰寡人 提交于 2020-10-18 09:29:49
swoole是使用C语言实现的socket通信框架,workerman则是使用纯php实现的socket框架,二者进程模型上也存在很多的不同。 先说下swoole的进程模型,看一下以下解析图。 master进程 这个进程比较复杂,也是我认为最核心的进程,这是一个包含多线程的进程,分别是一个主线程和n个reactor线程(数量可以配置)。 其中,主线程用于accept新的连接,然后评估一下每个reactor线程负责维护的连接数,然后分配给数量最少的那个reactor线程,最大程度保证每个reactor线程的负载量是均衡的。 本质上讲,一旦一个socket可读或者可写了,就由reactor线程发送给worker进程或者发送会客户端。除此之外,主线程还负责对所有信号的接管,避免reactor线程收到信号的打扰中断。 说的洋气点儿就是:master进程负责了连接的accept、托管、socket的可读可写(数据的发送和接受),本质上讲,master进程负责了IO。还需要注意一点儿的是reactor线程是彻底的全异步非阻塞工作方式。 manager进程 manager进程是worker进程和taskworker进程的妈,说的洋气点儿就是manager进程fork出来了worker进程和taskworker进程,生出来了就得管,所以

记一次linux livechat软件安装实践

时光毁灭记忆、已成空白 提交于 2020-08-14 01:46:22
1,装OpenSSH 教程: Windows 下 cmd 窗口使用 ssh 命令 https://blog.csdn.net/wm609972715/article/details/83759114 下载地址: https://www.mls-software.com/opensshd.html 记得一定要用迅雷下,这样会快点儿。 2,装宝塔 教程: 【Linux】ssh 链接服务器 并 安装宝塔面板 https://blog.csdn.net/Krone_/article/details/89605909 核心命令 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh 3,进宝塔,打开php.ini找到disable_functions一项,将pcntl_fork,pcntl_singal禁用项删掉 安装环境:linux宝塔,php5.6,mysql5.5或5.6 第一步:上传网站源码 第二步:创建数据库 第三步:设置运行目录public 第四步:访问 http://域名/install.php 进行安装 第五步:宝塔-安全:放行2080,9090端口 (如果是阿里云或者腾讯云,安全组设置放行2080,9090端口) 第六步

nginx为workerman、socketio提供ssl

天涯浪子 提交于 2020-08-11 14:31:08
nginx location /wss { proxy_pass http://127.0.0.1:3322; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Real-IP $remote_addr; } location /socket.io { proxy_pass http://127.0.0.1:3310; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Real-IP $remote_addr; } apache # Proxy Config ProxyRequests Off ProxyPass /wss ws://127.0.0.1:3322 ProxyPassReverse /wss ws://127.0.0.1:3322 ProxyPass /socket.io http://127.0.0.1:3310 ProxyPassReverse /socket.io http:/

01 workerman之GatewayWorker框架简单使用

天大地大妈咪最大 提交于 2020-05-09 07:07:38
1.GatewayWorker框架是什么? GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等 GatewayWorker使用经典的Gateway和Worker进程模型。Gateway进程负责维持客户端连接,并转发客户端的数据给BusinessWorker进程处理, BusinessWorker进程负责处理实际的业务逻辑(默认调用Events.php处理业务),并将结果推送给对应的客户端。 Gateway服务和BusinessWorker服务可以分开部署在不同的服务器上,实现分布式集群。GatewayWorker提供非常方便的API, 可以全局广播数据、可以向某个群体广播数据、也可以向某个特定客户端推送数据。配合Workerman的定时器,也可以定时推送数据。 总之就是一个基于workerman的socket框架 2.怎么下载使用? 3.基本环境搭建 点它进行启动 前提是你已经配置过PHP的环境变量 不然会启动失败应该 如果不会配置环境变量 请自行百度吧 启动后是这样的界面 4.如何在页面上连接这个socket服务 这里以js中的websocket为例 红线填服务器的地址和端口号 这个在 GatewayWorker 里看

《Thinkphp5使用Socket服务》 入门篇

巧了我就是萌 提交于 2020-05-07 09:03:56
上车啦!!! 今天来说一下thinkphp5.0下使用wokerman的socket服务。 安装: composer的安装方法,Windows下直接下个composer的应用程序,双击安装,环境变量同时给配置好了,Linux端命令安装,如我使用的Ubuntu,键入 sudo apt-get install composer -y 。 切换镜像: composer切换到国内镜像,安装扩展可以提升一些速度。执行命令 composer config -g repo.packagist composer https://packagist.phpcomposer.com 更新: 进入到thinkphp项目的根目录下,执行 composer update 命令 下载: 接下来安装workerman ,执行 composer require topthink/think-worker 。 报错信息 报错,根据报错信息,可以看出,framework版本不符合要求,导致安装失败。 think-worker v2.0.10 如图可以看到,think-worker默认安装 2.0版本,而它需要5.1版本的framework,thinkphp5.0版本不被支持。 think-worker dev-master dev-master 版本,对framework没有要求,所以执行 composer

基于Websocket接口的SQL注入利用

匆匆过客 提交于 2020-04-28 04:15:20
昨天在测某项目的时候发现前端中使用的Websocket协议(以下简称WS)传参,因为刚好那天群的某*行的老哥也在测内网的一个使用Websocket协议的应用,所以特意去了解了一下,研究测试后发现存在SQL注入,当时问表哥们sqlmap是否支持该注入,答案是否定的,但表哥给出了解决方案,我们后面讲。 Websocket是什么? WebSocket是H5开始提供的一种在单个TCP连接上进行全双工通讯的协议,它使得client与server之间的数据交换变得更加简单,在websocketAPI 中浏览器和服务器只需做一个握手,两者之间就可以进行互相传送数据。 模拟环境搭建 因为测试目标的敏感,我将采用PHP模拟存在注入的环境并进行测试。 PHP 使用 Websocket可以用第三方的扩展来实现 如: workerman,swoole 因为 workerman搭建起来比较简单 且 支持 Linux和 Windows 环境所以使用 Workerman来搭建。 去workerman官网下载好内核的包: https://www.workerman.net/download 下载后 放入 PHP项目下 查看 官方的 demo 代码 <? php use Workerman\Worker; require_once './Workerman/Autoloader.php' ; //

PHP vs Golang ? What Are You Thinking ! 你想什么呢 !

馋奶兔 提交于 2020-04-20 12:26:09
在使用 PHP 多年之后,我对 PHP 的优势和劣势已经非常清楚,与后起之秀 Golang 相比,两者已经不在一个重量级。 PHP 更像是 70 kg 级别的选手,脚本语言,极速开发,部署方便,性能可以。 Golang 更像是 90 kg 级别的选手,静态语言,众家所长,部署非常方便,性能非常好。 PHP 的应用主要集中在 Web应用 / API 应用 / 通用脚本。 PHP 部署方面,一般是部署源码。FPM 依赖 Nginx 之类的 Web 服务器;   对于常驻内存 HTTP Server 方面,Workerman 并未普及,Swoole 贴近底层而面临未来版本升级、维护的高成本。 PHP 性能方面,中小型规模应用完全可接受,但一旦服务器数量增多,和 Java 类静态语言的性能差距就会直接暴露出来。 PHP 服务端编程方面,只有 Pcntl 用于多进程编程,比较简陋,Pthreads 多线程不安全,网络编程门槛高,多数在结合框架基础上才能够做一些工作。 Golang 的应用广阔,Web应用 / Web服务器 / 云计算 / 区块链 / 通过脚本,面对各方面都游刃有余,使用上还能带来脚本语言般的体验。 Golang 部署方面,既可以直接 run 文件运行,也可以编译成二进制运行,安全性好。   不依赖 Web 服务器,单文件就可以启动高性能 HTTP Server,资源消耗极少

利用nginx/apache代理wss 实现 小程序 端口 反向代理

流过昼夜 提交于 2020-04-07 07:59:47
除了用Workerman自身的SSL,也可以利用nginx/apache作为wss代理转发给workerman(注意此方法workerman部分千万不要设置ssl,否则将无法连接)。 通讯原理及流程是: 1、客户端发起wss连接连到nginx/apache 2、nginx/apache将wss协议的数据转换成ws协议数据并转发到Workerman的websocket协议端口 3、Workerman收到数据后做业务逻辑处理 4、Workerman给客户端发送消息时,则是相反的过程,数据经过nginx/apache转换成wss协议然后发给客户端 nginx配置参考 前提条件及准备工作: 1、已经安装nginx,版本不低于1.3 2、假设Workerman监听的是8282端口(websocket协议) 3、已经申请了证书(pem/crt文件及key文件)放在了/etc/nginx/conf.d/ssl下 4、打算利用nginx开启443端口对外提供wss代理服务(端口可以根据需要修改) 5、nginx一般作为网站服务器运行着其它服务,为了不影响原来的站点使用,这里使用地址 域名/wss 作为wss的代理入口。也就是客户端连接地址为 wss://域名/wss nginx配置类似如下 : server { listen 443; ssl on; ssl_certificate /etc

利用php websocket实现小程序消息推送或即时通信功能 wss的实现

倖福魔咒の 提交于 2020-03-17 23:00:08
某厂面试归来,发现自己落伍了!>>> 小程序没有消息推送功能,要想实现可以通过php的websocket来实现 一.配置服务器. 1.上传web-msg-sender目录到服务器 (官方地址 https://www.workerman.net/web-sender 下载地址: https://www.workerman.net/download/senderzip ) 2.修改start_io.php文件修改证书路径(nginx证书) 小程序跳过此步小程序需要使用 反向代理下面会有介绍 $sender_io = new SocketIO(2120); 修改成 $context = array( 'ssl' => array( 'local_cert' => '/ssl/cn_bundle.crt', 'local_pk' => '/ssl/pk.key', 'verify_peer' => false, ) ); // PHPSocketIO服务 $sender_io = new SocketIO(2120,$context); 证书可以通过腾讯云申请,下载后选择里面的nginx证书即可 3.参考 http://doc.workerman.net/faq/disable-function-check.html 检查环境 如有禁用函数vi /usr/local/php/etc/php