在共享主机中使用 websockets 是否有任何替代方案

use*_*148 5 javascript php ajax real-time

在共享主机中使用 websockets 有什么替代方法吗?我知道 node.js、socket.io、Express.js 但不能在共享主机中使用它们。所以,如果有任何用于制作实时网站的替代方法,请告诉我。

小智 7

我认为好的替代方案是“服务器发送事件”,它是一种方式,但我认为在大多数情况下它比 Websockets 更好,因为它更容易设置,因为不需要特殊的服务器或库,并且没有额外的协议可遵循,只需echophponmessagejavascript.

快速示例(来自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)


niu*_*ech 3

如果您的共享主机提供 PHP 支持,您可以使用 PHP 中的 WebSockets 库之一:

要安装 Ratchet,请阅读我关于如何在共享主机上安装 Composer 的答案。

或者,您可以使用我的项目Node.php在共享主机上安装 Node.js。