是否有任何替代webockets用于共享主机

时间:2014-01-05 10:26:08

标签: javascript php ajax real-time

在共享主机中使用websockets还有其他选择吗?我知道node.js,socket.io,Express.js但不能在共享主机中使用它们。因此,如果有任何替代方法用于制作实时网站,请告诉我。

3 个答案:

答案 0 :(得分:3)

您可以考虑使用PubNub等托管实时网络在共享主机上进行实时通信。使用像PubNub这样的托管实时解决方案意味着您不必担心开放端口或持久进程。

有一个完整的hello world教程可以帮助您开始使用PubNub博客: http://www.pubnub.com/blog/php-push-api-walkthrough/

以下是一个简单的例子。

enter image description here

  

让我们来看看开发人员如何在PHP之间创建渠道   和JavaScript。实时最常用的使用模式   应首先解释申请。 JavaScript浏览器(如   Firefox)将订阅和收听消息   PUBNUB.subscribe()。然后PHP将推送消息   $ pubnub.publish()。

PUBNUB.subscribe( { channel : 'my_test_channel' }, function(message) {
if ('some_text' in message) {
    alert(message.some_text);
}} );
     

上述JavaScript完全兼容浏览器。代码会   收听'my_test_channel'频道上发布的消息。当一个   收到消息,JavaScript将验证'some_text'   存在于消息对象中。如果此属性存在,则显示   警报框!

     

现在使用PHP发布消息来调用JavaScript Alert框。

## Publish Messages To a JavaScript Browser 
$pubnub = new Pubnub( 'publish_key', 'subscribe_key' ); $pubnub->publish(array(
  'channel' => 'my_test_channel',
  'message' => array( 'some_text' => 'hello!' ) ));
     

此PHP代码将向侦听的JavaScript浏览器发送消息   'my_test_channel'频道。当这个PHP代码执行时,一个JavaScript   浏览器将收到PHP数组并显示一条警告消息   “你好!”。

http://www.pubnub.com/blog/php-push-api-walkthrough/#sthash.jI8zntnL.dpuf

答案 1 :(得分:1)

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

要安装Ratchet,请在how to install Composer on a shared hosting上阅读我的答案。

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

答案 2 :(得分:1)

我认为不错的选择是“服务器发送事件”,这是一种方法,但是我认为在大多数情况下,Websockets更好,因为它更容易设置,因为不需要特殊的服务器或库,也不需要遵循其他协议,仅来自echo中的phponmessage中的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>";
};

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();
?>
相关问题