使用Node.js向API发送请求

3
我正在使用Phalcon框架的微型应用程序功能,开发一个PHP API。该API接收GET、POST、PUT、DELETE请求,然后从MySQL数据库中以JSON格式返回结果(该API具有访问数据库的权限)。
我还在开发一个基于Phonegap和Ionic框架的移动应用程序,并且需要实时连接所有移动用户。例如:聊天中返回自API的信息,例如:所有个人资料信息,如姓名、电子邮件、年龄、生日将使用API进行存储和检索。
我的问题是,在这里是否可以实现node.js,以使应用程序实时甚至使用API来返回、插入和更新数据?我需要在用户之间创建交互,例如:某人会实时向另一个用户发送好友请求,如果被请求的用户接受了请求,则使用API更新MySQL数据库,将用户添加到好友列表中。
我想使用API,因为我不想给未来的开发者访问数据库的权限。但性能是我的优先考虑因素。
谢谢!
1个回答

3
Node.js是一个很好的选择,可以制作实时框架,将用户连接到RESTful后端。但是,您也可以考虑使用托管的实时消息传递服务,例如PubNub,在用户和PHP后端之间实时传递数据。
使用PubNub的 PHP API,您可以设置服务器以侦听事件:
$pubnub = new Pubnub(
    "demo",  ## PUBLISH_KEY
    "demo",  ## SUBSCRIBE_KEY
    "",      ## SECRET_KEY
    false    ## SSL_ON?
);
$pubnub->subscribe(array(
    'channel'  => 'hello_world',        ## REQUIRED Channel to Listen
    'callback' => function($message) {  ## REQUIRED Callback With Response
        ## Do all the awesome stuff your server does
        return true;         ## Keep listening (return false to stop)
    }
));

现在您的服务器已订阅您的频道,您也可以让客户端订阅以便收听全局事件。我将从JavaScript SDK给出一个示例,但每个较大的移动平台都有一个SDK:
     var pubnub = PUBNUB.init({
         publish_key   : 'demo',
         subscribe_key : 'demo'
     })

     function publish() {
         pubnub.publish({
             channel : "hello_world",
             message : "Bob added Stan as a friend"
         })
     }
 })();

你也可以反过来做,从服务器向客户端广播消息。砰!

最终,您可能希望为每个用户扩展一个唯一的频道,以便能够与服务器进行私人通信,还需要身份验证;我们称之为PubNub Access Manager,它得到了大力支持。

祝好运!


哇!这就是我一直在等待的答案!太棒了!你有没有关于如何使用PubNub从服务器向客户端广播消息的示例? - Thyoity
1
当然,PHP SDK 也有一个发布函数:$info = $pubnub->publish(array( 'channel' => 'hello_world', 'message' => 'Hey World!' )); 您可以在这里找到更多信息。 - drnugent
很好,那么我可以使用JavaScript实时获取我的移动应用程序中的这些PHP推送消息,对吗?我的服务器使用PHP,我的移动应用程序使用JavaScript。我是正确的吗? - Thyoity
1
您可以使用JavaScript、iOS、Android或任何PubNub支持的语言(列表)来开发。实时网络本身是与语言无关的。 - drnugent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接