gpt4 book ai didi

javascript - 保持 Web Socket 服务器处于事件状态

转载 作者:行者123 更新时间:2023-12-03 02:43:21 25 4
gpt4 key购买 nike

Zup 编码员。我实现了一个简单的网站,它使用 Web Sockets PHP(Consik Yii2 解决方案: https://github.com/consik/yii2-websocket )与 JS (Html5)。

一切工作正常,我的解决方案只有一个问题,确保服务器始终处于事件状态

  1. 我考虑将 WebSocket 实例保存到缓存中并抛出一个 cron 来检查实例的状态。我安装了 memcached 并发现我无法保存 WebSocket Server 实例的序列化版本。这是一个好的解决方案吗? ¿Redis Caché 能解决这个问题吗?

  2. 我还考虑过使用客户端 JS 来响应“WebSocket 握手期间的错误:意外的响应代码:200”,但我似乎无法让它工作。我也不喜欢公开启动 websockets 的 URL。

例如:

connect = function(){
websocket = new WebSocket(webSocketURL);
websocket.onerror = function(){
$.get( "/startWebSocketServer",
function(data){
connect();
}
);
};
};
connect();

谢谢!

最佳答案

我认为事实上您需要一个进程主管来负责“监督”您的服务器进程并执行操作以响应进程/系统事件(例如崩溃、重新启动等)。

每种情况都有多种解决方案(标准操作系统实现、个人喜好、适合您的需要),这里列出了 http://without-systemd.org/wiki/index.php/Init ,服务经理部分最能满足您的需求。Supervisord 易于设置和配置,由于网络上有大量示例,这可能是一个良好的开始。

解决方案 1:使用缓存并不是实现定制 Supervisor 的最正统方法。

解决方案 2:只要它通知用户存在问题,就是合法的,调用公开端点来启动服务恕我直言可能是一个安全缺陷。

关于javascript - 保持 Web Socket 服务器处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com