2016-07-02 4 views
0

Я создал АЯКС вызов к базе данных IMBdЗадержка - событие socket.io?

// API Key 
key = "4dba72b2-7558-4c0f-bd18-9ffcb0999c4e"; 
// Url 
mainUrl = "http://api.myapifilms.com/imdb/top?token="+ key +"&format=json&data=0&start=1&end=250"; 
// API Call 
var request = require('request'); 

request(mainUrl, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 

    // Storing data in an object 
    var obj   = JSON.parse(body), //JSON Parser 
     movieArray = obj.data.movies, //Creating Array 
     item  = movieArray[randomMovieRank]; //Setting random movie variable 
     itermArray = [item.ranking,item.title,item.year]; 

    console.log(itermArray); 
    io.sockets.emit("serverAnswer", {ranking: itermArray[0], title: itermArray[1], year: itermArray}); 

    } 
}); 

return false; 

наблюдавшихся по:

socket.on("serverAnswer", function(data){ 
    console.log(data.title); 
}); 

Сокет.он вызывается на стороне клиента. Проблема, с которой я сталкиваюсь, заключается в том, что она очень медленно вытягивает данные, если вообще. API работает так, как правильно управляет консолью в терминале. Но клиентская сторона иногда иногда тянет через объявление, иногда не делает. Есть ли что-то, что я делаю неправильно?

EDIT:

Добавлено Pastebin: http://pastebin.com/TYHsqBmK

ответ

1

При вызове испускают метод, ваш клиент не гарантировала подключен, вы можете вызвать событие Ajax после подключения или испускать указанные сообщения клиента, такие в

на сервер:

io.on('connection',function(socket){ 
    if(movies !== null) 
    { 
     socket.emit("serverAnswer", {movies:movies}); 
    } 
    else{ 
     //1.ajax request IMDB resource 
     //2.set movies variables 
     //3.emit message 
    } 
}); 

клиент:

socket.on("serverAnswer", function(data){ 
     console.log(data); 
    }); 
+0

При вызове, если заявление, что фильмы в виду? –

+0

Я включил пастебин, чтобы показать, что я сделал. –

+0

Не точный ответ, который мне нужен, но направление - это то, что заставило его работать отлично для меня. Так что спасибо! :) –

Смежные вопросы