使用php和voryx Throway WAMP消息系统发送消息



我正在尝试构建一个通知消息系统。我使用的是SimpleWsServer.php服务器示例。当任务在服务器上完成时,我想将通知推送到用户的浏览器。这需要使用PHP来完成,我找不到显示这一点的教程。所有的教程似乎都显示了在PHP服务器作为管理器运行时发送和接收tavendo/AutobahnJS脚本。

是否可以使用php脚本向订阅者发送消息?

Astro,

这实际上是非常直接的,可以通过几种不同的方式来实现。我们设计了Throway客户端来模仿AutobahnJS客户端,所以大多数简单的例子都会直接翻译。

我假设您想要从网站发布(而不是长时间运行的php脚本)。

在你的PHP网站上,你会想做这样的事情:

$connection = new ThruwayConnection(
    [
        "realm"   => 'com.example.astro',
        "url"     => 'ws://demo.thruway.ws:9090', //You can use this demo server or replace it with your router's IP
    ]
);
$connection->on('open', function (ThruwayClientSession $session) use ($connection) {
    //publish an event
    $session->publish('com.example.hello', ['Hello, world from PHP!!!'], [], ["acknowledge" => true])->then(
        function () use ($connection) {
            $connection->close(); //You must close the connection or this will hang
            echo "Publish Acknowledged!n";
        },
        function ($error) {
            // publish failed
            echo "Publish Error {$error}n";
        }
    );
  });
 $connection->open();

javascript客户端(使用AutobahnJS)将如下所示:

var connection = new autobahn.Connection({
    url: 'ws://demo.thruway.ws:9090',  //You can use this demo server or replace it with your router's IP
    realm: 'com.example.astro'
});
connection.onopen = function (session) {
    //subscribe to a topic
    function onevent(args) {
        console.log("Someone published this to 'com.example.hello': ", args);    
    }
    session.subscribe('com.example.hello', onevent).then(
        function (subscription) {
            console.log("subscription info", subscription);
        },
        function (error) {
           console.log("subscription error", error);
        }
    );
};
connection.open();

我还为javascript端创建了一个plunker,为PHP端创建了可运行的plunker。

相关内容

  • 没有找到相关文章

最新更新