我无法找到我的代码有什么问题。如果我运行“node whatever.js”,这个应用程序运行良好,但是一旦我在 Nodejitsu 这样的地方将它推到生产环境,它就无法运行(我实际上不确定它是否无法运行,但我认为它只是运行在我激活服务器后立即停止运行,然后停止运行所有请求)。(出于隐私考虑,我删除了我的密钥和令牌信息)
PS:实际的应用程序托管在这里:http ://bucifer-realtime-twitter.jit.su/ 模板中的“等待它”应该使用socket.io/Express变成一大堆推特数据,这在开发中运行良好。
var express = require("express");
var fs = require("fs");
var http = require("http");
var https = require("https");
var port = "1337";
var twitter = require('ntwitter');
var twit = new twitter({
consumer_key: 'x',
consumer_secret: 'x',
access_token_key: 'x',
access_token_secret: 'x'
});
var app = express();
app.get("/", function(request, response) {
var content = fs.readFileSync(__dirname + "/template.html");
response.setHeader("Content-Type", "text/html");
response.send(content);
});
var server = http.createServer(app);
server.listen(port);
var io = require('socket.io').listen(server);
app.use(express.static(__dirname + '/public'));
twit.stream('statuses/filter', { track: ['naruto'] }, function(stream) {
stream.on('data', function (tweet) {
console.log("working...");
io.sockets.emit("tweet", tweet);
});
stream.on('end', function() {
console.log("Disconnected");
io.sockets.emit('ending', {message: 'test'});
});
stream.on('error', function(error ,code) {
console.log("My error: " + error + ": " + code);
});
// Disconnect stream after -- seconds
var myTimeOut = 21000;
setTimeout(stream.destroy, myTimeOut);
});