php socket服务端能不能在网页端开启?而不是只能用CLI模式开启

爵罗先生 2014-08-05 09:04:38
最近在做基于php socket的聊天程序,但是遇到了个问题:
开启ws端口只能在CMD下用php server.php的方式来开启端口,并不能关闭该CMD命令行窗口,一旦关闭就断开了socket连接。
请问,能不能做到不用这样的方式来开启ws服务端,而成为在网页端来开启?怎么做?
...全文
225 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
爵罗先生 2014-08-05
  • 打赏
  • 举报
回复
好的,再次感谢
xuzuning 2014-08-05
  • 打赏
  • 举报
回复
没有什么弊端,尤其是在调试环境中 如果是正式的服务,那么在服务器桌面上多一个命令窗口有什么关系?谁也不会在服务器上做日常工作的
爵罗先生 2014-08-05
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
可以从网站上开启,但需要注意以下问题: 1、因为端口不能重复打开,所以你必须保证 server.php 只会被运行一次 2、web 方式下的 php 是超时设置有效的,当然你需要设置成永不超时 3、web 服务器是有超时限制的,虽然时间比较长。应用程序长时间无数据输出,将会被挂起或中断 4、如果 server.php 间歇的做标准输出的话,可以解决 3 的问题。但会引发下一个问题 5、php 在向标准输出写的时候,会检查到请求源的连接是否畅通。如果请求源被关闭了,就会终止程序的运行 当然也提供有阻止这一默认行为的方法 其实命令窗口的存在并不是什么坏事,至少他可以表示 ws 服务器正在工作 另外 ws 服务器在运行时,你应该要把重要的日志信息打印在窗口中,以便实时监视运行情况
非常感谢分析并回答! 因为在win下,CMD窗口一直在运行,并且不能关闭,一旦关闭将会停止运行socket服务,而这个窗口在桌面上显示人总会有种想关闭的冲动,或者一不小心就会关闭。所以才想出这样的狠招! 根据你的方法,设置了超时限制后,在网页端直接开启ws服务,在xampp的netstat中查看,创建的进程中,多出了个12345端口(设置的ws端口),而后面显示的name为httpd.exe,说明是由httpd.exe创建的,而前面php server.php在命令行下面创建的进程,则是由php.exe创建的,不知道这样有没有什么弊端?
xuzuning 2014-08-05
  • 打赏
  • 举报
回复
可以从网站上开启,但需要注意以下问题: 1、因为端口不能重复打开,所以你必须保证 server.php 只会被运行一次 2、web 方式下的 php 是超时设置有效的,当然你需要设置成永不超时 3、web 服务器是有超时限制的,虽然时间比较长。应用程序长时间无数据输出,将会被挂起或中断 4、如果 server.php 间歇的做标准输出的话,可以解决 3 的问题。但会引发下一个问题 5、php 在向标准输出写的时候,会检查到请求源的连接是否畅通。如果请求源被关闭了,就会终止程序的运行 当然也提供有阻止这一默认行为的方法 其实命令窗口的存在并不是什么坏事,至少他可以表示 ws 服务器正在工作 另外 ws 服务器在运行时,你应该要把重要的日志信息打印在窗口中,以便实时监视运行情况
深圳phper 2014-08-05
  • 打赏
  • 举报
回复
yaf-lib 基于 yaf 的应用开发框架, 简单的mvc中间层继承补充, 常用缓存、数据库等驱动类, 添加widget组件模块,及layout插件, rpc服务化,支持hprose、yar等, 支持xhprof性能调试。requirementphp 5.3 php-yaf 2.3.3phpredis 2.2.7memcache 2.2.7zmq 1.1.2xapian-bindings 1.2.21scws 1.2.2swoole 1.7.17hprose-php 1.5.4php-yar 1.2.4xhprof 0.9.4src/controllersMadclienthttp://localhost/madclient Madclient是php实现的MadzMQ消息队列的客户,通过msg协议与madbroker通信,异步发送消息。src/bootstrapbootstrap是yaf的引导程序,这里进行拆分,如果工作的web进入cgi模式,如果工作在命令行进入cli模式。src/libraryControllerController类继承Yaf_Controller_Abstract,控制器可以选择性的继承这个类,在类中实现了,layout、widget等初始化。SontrollerSontroller类继承Yaf_Controller_Abstract,工作在cli模式下。ModelModel类是数据层的抽象类,所有数据对象都可以继承它,Model可以从不同的data_center分发数据。WidgetWidget类是组件的基类,widgets目录下的组件类都继承它,widgets/views目录是相应组件的view。 views中通过$widget方法调用组件$widget('IndexWidget',     array('class_key'=>'item_condition',         'output'=>'html',         'query'=>array(),         'assist_data'=>array(             'one'=>'one'         )     ) );Zmq_MsgZmq_Msg是基于ZeroMQ的一种简单msg消息协议的php实现Zmq_KvmsgZmq_Kvmsg是基于ZeroMQ的一种简单key-value消息协议的php实现Core_ProcesspoolCore_Processpool类封装了一个进程池。System_MongoSystem_Mongo类封装了mongodb的客户接口。conn 用于连接mongoselectDB 选择数据库selectCollection 选择文档findOne 获取一条数据find 获取数据列表select 选择数据可以排序或区间insert 添加数据update 更新数据close()关闭连接System_SocketSystem_Socket类对网络socket进行封装System_MemcacheSystem_Memcache类封装了Memcached的客户接口::set 设置缓存::get 获取缓存::delete 删除缓存::flush 清空::increment 原子计数加::decrement 原子计数减System_RedisSystem_Redis类封装redis客户驱动System_MysqlpdoSystem_Mysqlpdo类封装了pdo_mysql的操作接口::bind::bindmore::query::lastInsertId::column::row::singleSystem_LogSystem_Log类封装了日志处理类System_SortSystem_Sort类封装了一些经典得排序算法::insertion 插入排序::selection 选择排序::bubble    冒泡排序::merge     归并排序Search_SegmentSearch_Segment类 中文分词init         分词器初始化close        关闭query        获取原数据列表queryOne     获取单个原数据cutQuery     切分原数据cutString    切分字符串Search_IndexSearch_Index类 用于添加索引setIdPrefixadd         建立索引数据alert       更新索引数据delete      删除索引数据Search_MatchSearch_Match类用于匹配搜索结果call    执行匹配Search_DatabaseSearch_Database类 用于查询索引数据库中的原数据get_doccount    获取文档总数get_data        获取单个文档原数据get_termlist    获取单个文档语词select          获取数据列表Search_ConfigSearch_Config类 可以根据配置处理搜索结果getApp       获取appgetAppName   获取app名称getTableName 获取标名称formatTitle  格式化标题formatDetail 格式化详情formatUrl    格式化地址栏formatImage  格式化图片binmain服务程序,根据入口文件名称找到MainController,然后执行mainAction方法; yaf的CLI模式的入口文件,在CLI模式下可以开发强大的服务程序./bin/mainmadservermadserver是php实现的MadzMQ消息队列的服务,其作为订阅者订阅来自madbroker的,协议为kvmsg../bin/madserverhprose_swoole_tcp.phprpc服务,tcp协议,支持方法、对象方法、异步等调用 对象方法调用://服务代码$server->add(new TestModel(),'','test');//客户调用$client->test->one();src/toolsxapianxapian-bindings 1.2.21xhprofxhprof-0.9.4hprose-phphprose-php 1.5.4 标签:yaflib

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧