【问题标题】:Sails.js: stream socket and send to controllerSails.js:流式套接字并发送到控制器
【发布时间】:2018-03-09 17:15:09
【问题描述】:

我正在 Sails.js 中编写一个 REST API,除了常规的 HTTP 路由外,我还需要应用程序来监听来自 Salesforce 的套接字上的通知。

我有一个带有一些逻辑的控制器,但我不知道如何让它在启动时订阅套接字,所以现在什么都没有到达。

控制器

pushTopicHandler: function(req, res) {
  if (!req.isSocket) {
    return res.badRequest();
  }

  var nforce = require('nforce');
  var org = nforce.createConnection({
      clientId: sails.config.client_id,
      clientSecret: sails.config.client_secret,
      redirectUri: sails.config.callback_url + '/oauth/_callback',
      mode: 'multi',
      environment: 'sandbox'
  });

  org.authenticate({ username: sails.config.sfUsername, password: sails.config.sfPassword }, function(err, oauth) {

      if(err) return res.serverError(err);

      var str = org.stream({ topic: sails.config.push_topic, oauth: oauth });

      str.on('connect', function(){
        console.log('Connected to pushtopic: ' + sails.config.push_topic);
      });

      str.on('error', function(error) {
        console.log('Error received from pushtopic: ' + error);
      });

      str.on('data', function(data) {
        console.log('Received the following from pushtopic ---');
        console.log(data);
      });
    });
  }

【问题讨论】:

    标签: node.js websocket salesforce sails.js


    【解决方案1】:

    Sails 有一个 bootstrap.js 文件,可让您编写任何想要在服务器启动之前运行的内容

    我能够在该文件中 cb() 之前的一个小函数中订阅推送主题,并且它可以正常工作,服务器正常启动 REST API,它仍在侦听事件。

    【讨论】:

      猜你喜欢
      • 2015-04-28
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2011-04-11
      相关资源
      最近更新 更多