コードの問題点を見つけるのに苦労しています。このアプリは、「nodewhatever.js」を実行すると問題なく動作しますが、Nodejitsu のような場所で本番環境にプッシュすると、実行に失敗します (実際に実行に失敗するかどうかはわかりませんが、実行されるだけだと思います)サーバーをアクティブ化した直後に一度、その後すべてのリクエストの実行を停止します)。(プライバシーのためにキーとトークンの情報を削除しました)
PS: 実際のアプリはここでホストされています: http://bucifer-realtime-twitter.jit.su/ テンプレートの「wait for it」は、socket.io/Express を使用して一連の twitter データに変更することになっています。これは開発中にうまく機能します。
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);
});