Zup编码员。我已经实现了一个使用Web套接字PHP(Consik Yii2解决方案:https://github.com/consik/yii2-websocket)和JS(Html5)的简单网站。
一切正常,我的解决方案只有一个问题, 确保服务器始终存在 。
我想将WebSocket实例保存到Cache中并抛出一个检查实例状态的cron。我安装了memcached,发现我无法保存WebSocket Server实例的序列化版本。 ¿这是一个很好的解决方案吗? ¿RedisCaché会解决这个问题吗?
我还考虑过使用客户端JS来对“WebSocket握手期间的错误:意外响应代码:200”作出反应,但我似乎无法让它工作。我也不喜欢将启动websockets的URL设为公开。
前:
connect = function(){
websocket = new WebSocket(webSocketURL);
websocket.onerror = function(){
$.get( "/startWebSocketServer",
function(data){
connect();
}
);
};
};
connect();
谢谢!
答案 0 :(得分:0)
我认为事实上你需要一个流程主管,负责“监督”你的服务器进程并做出响应流程/系统事件的动作,比如崩溃,重启等等。
每种情况都有多种解决方案(标准操作系统实施,个人偏好,满足您的需求),此处列出http://without-systemd.org/wiki/index.php/Init,服务经理部分最符合您的需求。 Supervisord易于设置和配置,由于网络上有大量的例子,它可能是一个良好的开端。
解决方案1:使用缓存不是实现定制主管的最正统方式。
解决方案2:作为ong是合法的,因为它告知用户有关问题,调用暴露的端点启动服务恕我直言可能是一个安全漏洞。