如何在node-rstp-stream模块节点js中关闭套接字服务器

时间:2016-03-24 13:55:57

标签: javascript node.js cordova express websocket

我使用 onvif 节点js模块和 node-rstp-stream 模块将RSTP流转换为img流,可以在phonegap中使用(不支持RSTP流)在我认为的phonegap)。 这里我使用快速js,所以每当我第一次向/ livestreaming发送请求它工作正常但没有下次加载时它会尝试在相同的端口号上创建一个实例,这会产生问题。有没有办法检查服务器是否在每个请求上运行关闭并再次启动它,以便我们不会使用该端口错误。有没有比这更好的方法请告诉我。

以下是我尝试的代码。

UITextField

1 个答案:

答案 0 :(得分:1)

node-rtsp-stream 库没有提供任何方法来检查端口是否已被使用,无论如何都无法关闭套接字服务器。

所以,从我的观点来看,你有两个选择:

  1. 尝试连接到您的套接字服务器端口(如果可用),例如通过执行ping操作,并且仅在不执行情况下启动新的Stream。
  2. 由于 node-rtsp-stream 库非常简单,而且我已经练习过它,您可以在新创建的流之后立即添加此代码:

    newsocket.wsServer.on('error', function() {
        newsocket.mpeg1Muxer.stream.kill();
    });
    
  3. 那么,这是从哪里来的?如果您查看库,您会发现 wsServer 是您的套接字服务器,而 mpeg1Muxer 是您的相机打开的流。由于已经在使用错误,服务器将无法启动,但您还应该终止ffmpeg进程。这样,如果服务器已经运行,则不会发生任何事情,如果没有,它将启动。

    这最后一个解决方案有点棘手,但我觉得它会起作用。

    希望有所帮助