远程服务器上怎么更好地运行socket程序

是这样的,后台需要部署一个socket监听的程序,大致需要就是一直监听存储stm32那边socket发过来的数据,现在的问题是如何更好地在阿里云上运行这个写好的程序?

做法一:我直接在打开的浏览器上上运行这个后台程序,监听8083端口供socket使用,截图说明问题所在

运行前:
图片描述

运行后:
图片描述

这样做是可以运行并监听收发数据,但是有一个问题是无法做到一直监听,经过测试,如果对方是一直进行(也可以间隔固定时间)连接发送的(因为客户端不止一个,我用的是短连接,每一次都要重新连接),那是没有问题的,一天都能正常监听并接收数据。

但是只要对方在一定时间内(1个小时以上吧)没有进行连接socket的连接和发送,我这边就会自己断开监听,程序里面是一直监听的,在do{"socket相关连接收发程序"}while(true),这时候看xampp,后面的端口显示又会回到80,443.不再显示8083了。

查了相关资料说是因为浏览器的问题,大致意思在一定时间内没有响应,浏览器会自动关闭进程什么的。(不确定是不是这个原因,有大神能解释下吗?)

那我就想到了方法二:CMD之类的终端运行,但是阿里云上没有CMD...好像为了安全也不允许对吧?,只找到了一个Windows PowerShell。
图片描述

但是这个东西资料很少,只能找到一堆命令,我也不确定能不能直接在上面运行我的php程序,所以希望懂的后端大牛们指导下。

做法3:不知道了...所以来寻求指点了,谢谢!

总结下:
三个问题:

1.我的socket在浏览器上运行后不能实现一直监听,是浏览器本身的问题对吗?这种方式能不能实现我要的效果?

2.是不是用Windows PowerShell可以运行php程序,如果可以的话,希望能指导下相关命令,就是怎么运行 localhost/cementProject/data/socketReceive 这个命令。 还有就是这种方式运行之后,是不是可以一直监听,不会发生前面浏览器运行的那个问题?

3.远程服务器上最好是怎么实现我这个需求?我想一定有做过socket监听部署的前辈们吧,希望给以指点一下,谢谢。

欢迎知道的前辈们多多参与,只回答其中的一点也行,不胜感激!

回答:

监听socket不能用web服务器来启动. 要不然, 启动的连接一断, 这程序直接就退了.
用 php cli启动脚本, 保持脚本一直运行.
看你socket server的协议.
可以使用workerman, swoole这些来开发程序.

回答:

1.浏览器有超时机制,超时就断开了tcp连接,结束进程

2.建议在终端环境下手动执行接受socket的后台程序

3.如果服务器是win的话,使用telnet连接,
如果是linux则使用ssh连接,
php以php cli模式执行相应的后台程序文件
这样可以实现后台进程常驻,不会被关闭
实现监听socket请求

以上是 远程服务器上怎么更好地运行socket程序 的全部内容, 来源链接: utcz.com/p/180237.html

回到顶部