有实时数据的替代方法吗?

时间:2018-07-16 18:18:47

标签: javascript php websocket real-time phpwebsocket

我是编程的入门者,所以我正在寻找一种在正在使用的网页中保存实时数据的方法,特别是实时通知。我将PHP用于服务器端代码,将Javascript用于客户端。

我尝试使用websockets,但问题是Web由Hostinger托管,并且不允许我使用shell运行websocket服务器,或者至少在不升级服务的情况下也尝试过使用PHP的shell_exec()运行命令,但也将其禁用。

我唯一的选择是使用“ wss://echo.websocket.org”服务器或其他一些在线服务器,但这不是我真正想要的。

还有另一种选择吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

一种选择是让您的前端每x秒调用一次后端“通知”端点,以检查通知。可能不是实时的,但您可以接近。

您的JS可能看起来像这样:

let getNotifications = (url, params) =>{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", url);
    try {
        xmlHttp.send(params);
        console.log(xmlHttp.responseText);
        //handle notifications here
    }
    catch(err) {
        console.log(err);
    }
    finally {
        setTimeout(() => {getNotifications(url, params);}, 5000);
    }
}

getNotifications('/api/notifications', null);

这每5秒(5000毫秒)向/api/notifications发送一次请求