2015-10-12 3 views
0

Привет, я сталкиваюсь с проблемой с сообщением клиентского сервера, передающимся от веб-клиента к TCP-серверу. Каждый раз, когда я снова подключаюсь к веб-странице, мои первые 6 сообщений проходят с задержкой, а седьмое сообщение занимает много времени, и первое сообщение повторяется снова. Я думаю, что должен быть обработчик буфера, но я не знаю, как его запустить. Помогите мне решить эту проблему. Мой сервер и клиент оба находятся в узле сокета (используя var net = require ('net')).Как очистить буфер в TCP-соединении

+1

Проблема в вашем * принимающем * коде. TCP не повторяет данные. – EJP

+0

Спасибо, что направили меня в нужное место, где я должен посмотреть. даже несмотря на то, что у этого есть отрицательные моменты, ваш комментарий просто заставил меня понять, что я не ответил ни на один ответ от моего клиента на вызов ajax. который продолжает повторять тот же код снова и снова. один res.send («успех») в клиенте очистил мою ошибку. Еще раз спасибо, что вы спасли мой день ... @EJP –

ответ

0

мой клиент должен отправить ответ на AJAX вызова, который я сделал из веб-страницы:

  $.ajax({ 
        type: 'POST', 
        url: 'http://localhost:3000/client', 
        dataType: "json", 
        contentType: "application/json; charset=UTF-8", 
        data: JSON.stringify({name:data+'\r'}),// this is the data i get from web page 
        done : function(data){ 
         console.log('on success', data); 
        }, 
        fail : function(error){ 
         console.log('on error', error) 
        } 
       }) 

и мой клиент узла

var net = require('net'); 
var _ = require('lodash'); 

    router.post('/client', function(req, res) { 
     var inputJSON = req.body; 
     var HOST = '127.0.0.1'; 
     var PORT = 5000; 
     var client = new net.Socket(); 
     client.connect(PORT, HOST, function() { 

      console.log('CONNECTED TO: ' + HOST + ':' + PORT); 
      // Write a message to the socket as soon as the client is connected, the server will receive it as message from the client 
      _.forEach(inputJSON, function(value,key){ 
       client.write(value); 
       // console.log(value); 
      }) 

     }); 
    //This is the line i missed in my earlier program the client should respond 
    res.send('success') 
    }); 

Я учусь узел. так что вы можете импровизировать мой код с вашими комментариями, чтобы я мог улучшить лучшее спасибо.

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