목차
回复讨论(解决方案)
백엔드 개발 PHP 튜토리얼 php socket服务端能不能在网页端开启?而不是只能用CLI模式开启

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

Jun 23, 2016 pm 01:52 PM
켜다 섬기는 사람 모델 사용될 수 있다

最近在做基于php socket的聊天程序,但是遇到了个问题:
开启ws端口只能在CMD下用php server.php的方式来开启端口,并不能关闭该CMD命令行窗口,一旦关闭就断开了socket连接。
请问,能不能做到不用这样的方式来开启ws服务端,而成为在网页端来开启?怎么做?


回复讨论(解决方案)

可以从网站上开启,但需要注意以下问题:
1、因为端口不能重复打开,所以你必须保证 server.php 只会被运行一次
2、web 方式下的 php 是超时设置有效的,当然你需要设置成永不超时
3、web 服务器是有超时限制的,虽然时间比较长。应用程序长时间无数据输出,将会被挂起或中断
4、如果 server.php 间歇的做标准输出的话,可以解决 3 的问题。但会引发下一个问题
5、php 在向标准输出写的时候,会检查到请求源的连接是否畅通。如果请求源被关闭了,就会终止程序的运行
当然也提供有阻止这一默认行为的方法

其实命令窗口的存在并不是什么坏事,至少他可以表示 ws 服务器正在工作
另外 ws 服务器在运行时,你应该要把重要的日志信息打印在窗口中,以便实时监视运行情况

可以从网站上开启,但需要注意以下问题:
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创建的,不知道这样有没有什么弊端?

没有什么弊端,尤其是在调试环境中
如果是正式的服务,那么在服务器桌面上多一个命令窗口有什么关系?谁也不会在服务器上做日常工作的

好的,再次感谢 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Win11에서 메모리 무결성을 켜야 합니까? Win11에서 메모리 무결성을 켜야 합니까? Jan 06, 2024 am 08:53 AM

Win11에서 메모리 무결성을 켜야 합니까?

WeChat의 방해금지 모드는 무엇을 합니까? WeChat의 방해금지 모드는 무엇을 합니까? Feb 23, 2024 pm 10:48 PM

WeChat의 방해금지 모드는 무엇을 합니까?

DLSS를 활성화하는 방법은 무엇입니까? DLSS 오픈 전략 DLSS를 활성화하는 방법은 무엇입니까? DLSS 오픈 전략 Mar 13, 2024 pm 07:34 PM

DLSS를 활성화하는 방법은 무엇입니까? DLSS 오픈 전략

GPU 하드웨어 가속을 활성화해야 합니까? GPU 하드웨어 가속을 활성화해야 합니까? Feb 26, 2024 pm 08:45 PM

GPU 하드웨어 가속을 활성화해야 합니까?

Windows 10에서 마이크 권한을 활성화하는 방법 Windows 10에서 마이크 권한을 활성화하는 방법 Jan 02, 2024 pm 11:17 PM

Windows 10에서 마이크 권한을 활성화하는 방법

win10에서 이더넷 비활성화를 활성화하는 방법: 세부 단계 win10에서 이더넷 비활성화를 활성화하는 방법: 세부 단계 Jan 03, 2024 pm 09:51 PM

win10에서 이더넷 비활성화를 활성화하는 방법: 세부 단계

Win11에서 절전 모드를 활성화하는 방법 Win11에서 절전 모드를 활성화하는 방법 Jan 08, 2024 pm 02:45 PM

Win11에서 절전 모드를 활성화하는 방법

iPhone에서 방해 금지 모드가 작동하지 않음: 수정 iPhone에서 방해 금지 모드가 작동하지 않음: 수정 Apr 24, 2024 pm 04:50 PM

iPhone에서 방해 금지 모드가 작동하지 않음: 수정

See all articles