【问题标题】:Making requests to API using node.js使用 node.js 向 API 发出请求
【发布时间】:2014-04-16 18:33:40
【问题描述】:

我正在使用 Phalcon 框架中的微应用程序功能在 PHP 中开发一个 API。此 API 包括接收 GET、POST、PUT、DELETE 请求,然后以 JSON 格式从 MySQL 数据库(API 可以访问数据库)返回结果。

我也在开发一个 phonegap + ionic 框架移动应用程序,我需要实时连接所有移动用户。类似于聊天,信息从 API 返回,例如:姓名、电子邮件、年龄、生日等所有个人资料信息都将使用 API 进行存储和检索。

我的问题是,是否可以在这里实现 node.js 以使应用程序实时,甚至使用 API 来返回、插入、更新数据?我需要创建用户之间的交互,例如:有人会实时向另一个用户发出好友请求,如果被请求的用户接受请求,它会使用 api 更新 mysql 数据库,将用户添加到好友列表中。

我想使用 API,因为我不想让未来的开发人员访问数据库。但性能是我的首要任务。

谢谢!

【问题讨论】:

    标签: php database node.js api request


    【解决方案1】:

    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 访问管理器,它得到了大力支持。

    祝你好运!

    【讨论】:

    • 哇!这就是我一直在等待的答案!好的!您是否有任何示例说明如何使用 PubNub 从服务器向客户端广播消息?
    • 当然,PHP SDK 也有发布功能:$info = $pubnub->publish(array( 'channel' => 'hello_world', 'message' => 'Hey World!' ));,您可以找到更多信息here
    • 太好了,我可以使用javascript在我的移动应用程序中实时获取这些PHP推送消息,对吧?我的服务器使用 PHP,我的移动应用程序使用 javascript。我说的对吗?
    • 您可以使用 JavaScript、iOS、Android 或 PubNub 支持的任何语言 (list)。实时网络本身与语言无关。
    猜你喜欢
    • 1970-01-01
    • 2019-11-11
    • 2021-10-30
    • 2020-02-02
    • 2014-09-30
    • 2019-08-10
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多