use*_*148 5 javascript php ajax real-time
在共享主机中使用 websockets 有什么替代方法吗?我知道 node.js、socket.io、Express.js 但不能在共享主机中使用它们。所以,如果有任何用于制作实时网站的替代方法,请告诉我。
小智 7
我认为好的替代方案是“服务器发送事件”,它是一种方式,但我认为在大多数情况下它比 Websockets 更好,因为它更容易设置,因为不需要特殊的服务器或库,并且没有额外的协议可遵循,只需echo从php并onmessage在javascript.
快速示例(来自https://www.w3schools.com/html/html5_serversentevents.asp):
JavaScript:
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
Run Code Online (Sandbox Code Playgroud)
PHP:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>
Run Code Online (Sandbox Code Playgroud)
如果您的共享主机提供 PHP 支持,您可以使用 PHP 中的 WebSockets 库之一:
要安装 Ratchet,请阅读我关于如何在共享主机上安装 Composer 的答案。
或者,您可以使用我的项目Node.php在共享主机上安装 Node.js。