Sails.js:流套接字并发送到控制器
Sails.js: stream socket and send to controller
我正在 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);
});
});
}
Sails 有一个 bootstrap.js
文件,可让您在 运行 服务器启动之前 写入任何内容。
我能够在该文件中 cb()
之前的一个小函数中订阅推送主题并且它有效,服务器正常启动 REST API 并且它仍在侦听事件。
我正在 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);
});
});
}
Sails 有一个 bootstrap.js
文件,可让您在 运行 服务器启动之前 写入任何内容。
我能够在该文件中 cb()
之前的一个小函数中订阅推送主题并且它有效,服务器正常启动 REST API 并且它仍在侦听事件。