使用带有voryx Thruway WAMP消息系统的php发送消息
发布时间:2020-12-13 21:52:17 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试构建通知消息系统.我正在使用 SimpleWsServer.php服务器示例.我想在服务器上完成任务时将通知推送到用户的浏览器.这需要使用PHP完成,我无法找到显示它的教程.当PHP服务器作为管理器运行时,所有教程似乎都显示了发送和接收的tavendo / AutobahnJS脚
我正在尝试构建通知消息系统.我正在使用
SimpleWsServer.php服务器示例.我想在服务器上完成任务时将通知推送到用户的浏览器.这需要使用PHP完成,我无法找到显示它的教程.当PHP服务器作为管理器运行时,所有教程似乎都显示了发送和接收的tavendo / AutobahnJS脚本.
是否可以使用php脚本向订阅者发送消息? 解决方法
天文,
这实际上非常简单,可以通过几种不同的方式完成.我们设计了Thruway客户端来模仿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方创建了一个runnable. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |