windows环境下用workerman做系统集成

来源:互联网 发布:lufylegend.js 编辑:程序博客网 时间:2024/06/05 10:34
系统集成侧重于实际应用,类似于把已经存在的音箱,功放,效果器,CD机等各种功能组件连接在一起,构成自己的音响系统,所需要做的工作仅仅是构建一些连接线而已,而无须自己去制造音箱,功放这功能组件。这对于一行代码都不愿意写的懒人,或者编程能力不太强的人员来说是个比较好的工作方式。

系统集成的关键是程序之间的数据交换,workerman能很好的完成这项工作,下图是一个简单的系统集成示例,采用浏览器做UI的原因是方便远程(web,lan都可以,不过web还是由安全机制更好的apache中转比较好)对系统进行操控,而且在UI添加/删减功能非常方便:


但是在windows环境下,workerman不具备进程守护能力,最简单的解决方案是将workerman封装成windows service来实现进程守护。

封装工具:instsrv.exe, srvany.exe,由microsoft的Windows Server 2003 Resource Kit Tools包所提供。
下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17657


下载到的Windows Server 2003 Resource Kit Tools包是一个自解压文件rktools.exe,运行后从解压出来的文件中,找到instsrv.exe, srvany.exe这2个文件,然后将它们复制到workerman安装目录下,再在该目录下创建4个空白的txt文件,修改txt文件的扩展名为.bat:
  install.bat:用于将workerman程序封装成windows service
  uninstall.bat:用于删除 install.bat所安装的所有windows service
  startAll.bat:用于启动 install.bat所安装的所有windows service
  stopAll.bat:用于停止 install.bat所安装的所有windows service


示例:workerman-chat-for-win的目录结构,蓝色背景的6个文件为我们前面所添加的文件:


选中install.bat-->右键-->编辑,添加以下内容:
注意:
1:set phpDir=D:\wamp64\bin\php\php7.0.10\(改为你的PHP安装目录)
2:set regDir=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\
也可以用:
set regDir=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
代替。效果一样,但注意只能用一种,不要混用。
3:需要添加其它workerman组件的话,复制REM ######## install workman_business ########后面的内容,粘贴到文档末尾,修改:
  set cxSrv=你想要的服务名称(字母,下划线,数字组成)
  set cxApp=你的workerman组件的绝对路径和文件名

--------以下为install.bat文件内容---------------------------------------------

REM: install.bat for workerman-chat-for-win
@echo off

set cxDir=%~dp0
set wraper=%cxDir%srvany.exe
set appDir=%cxDir%Applications\chat\
set regDir=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\
set phpDir=D:\wamp64\bin\php\php7.0.10\

set cxPHP=%phpDir%php.exe

REM ########install workman_register ########
set cxSrv=workman_register
set cxApp=%appDir%start_register.php

set cxReg=%regDir%%cxSrv%\Parameters\
instsrv %cxSrv% %wraper%
reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f
reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 
reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

REM ######## install workman_webServer ########
set cxSrv=workman_webServer
set cxApp=%appDir%start_web.php

set cxReg=%regDir%%cxSrv%\Parameters\
instsrv %cxSrv% %wraper%
reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f
reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 
reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

REM ######## install workman_gateway ########
set cxSrv=workman_gateway
set cxApp=%appDir%start_gateway.php

set cxReg=%regDir%%cxSrv%\Parameters\
instsrv %cxSrv% %wraper%
reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f
reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 
reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f

REM ######## install workman_business ########
set cxSrv=workman_business
set cxApp=%appDir%start_businessworker.php

set cxReg=%regDir%%cxSrv%\Parameters\
instsrv %cxSrv% %wraper%
reg add %cxReg% /v AppDirectory /t REG_SZ /d "%phpDir%" /f
reg add %cxReg% /v Application /t REG_SZ /d "%cxPHP%" /f 
reg add %cxReg% /v AppParameters /t REG_SZ /d "%cxApp%" /f


选中uninstall.bat-->右键-->编辑,添加以下内容:
注意:
写完才发现,貌似reg delete语句不是必须的,需验证,不想折腾了。
--------以下为uninstall.bat文件内容---------------------------------------------

REM: install.bat for workerman-chat-for-win

@echo off
set regDir=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\

reg delete %regDir%workman_register\Parameters
instsrv.exe workman_register remove

reg delete %regDir%workman_webServer\Parameters
instsrv.exe workman_webServer remove

reg delete %regDir%workman_gateway\Parameters
instsrv.exe workman_gateway remove

reg delete %regDir%workman_business\Parameters
instsrv.exe workman_business remove


选中startAll.bat-->右键-->编辑,添加以下内容:
--------以下为uninstall.bat文件内容---------------------------------------------
@echo off
sc start workman_register
sc start workman_webServer
sc start workman_gateway
sc start workman_business


选中stopAll.bat-->右键-->编辑,添加以下内容:
--------以下为stopAll.bat文件内容---------------------------------------------
@echo off
sc stop workman_business
sc stop workman_gateway
sc stop workman_webServer
sc stop workman_register


选中install.bat-->右键-->以管理员身份运行(A);
选中startAll.bat-->右键-->以管理员身份运行(A);
此电脑-->右键-->管理-->服务和应用程序\服务,在右侧窗口可以看到刚才安装好的四个服务


打开浏览器,在地址栏键入:localhost:55151
成功进入到聊天系统


参考:http://blog.csdn.net/sapperlab/article/details/53574688
原创粉丝点击