2017-08-16 21 views
1

私は最初のweb-appをnode.jsで実装して表現しました。それはうまく動作します。構造は以下のとおりです。ExpressをNode.jsのtcp-socketと組み合わせる方法

app.get('/', (request, response) => { 
    response.render('home', {orders, actualPosition, path}); 
}); 

app.post('/', function(req, res){ 
    //do something 
    res.redirect('/') 
}) 

app.listen(8080,() => { 
    console.log(`Listening on http://127.0.0.1:${port}/ !`); 
}) 

ここでは、tcp/ipを使用することが望ましいmatlabプログラムと通信したいと思います。 私は、Webアプリケーションとデータを交換するmatlabプログラムを持っています。私はそのような別のポートにネットでサーバーを開いてデータを送信するために達成:

var server = net.createServer(function(socket) { 
    //read data 
    socket.setEncoding("ascii"); //set data encoding (either 'ascii', 'utf8', or 'base64') 
    socket.on('data', function(data, res) { 
     //update new data in browser 
    }); 

    //send data 
    socket.write('Echo server\n'); 
    socket.pipe(socket); 
}); 

server.listen(8081, '127.0.0.1'); 

私の問題は、今私は、ブラウザでのTCP/IPを介して受信したデータを表示する方法です。 externからapp.get( '/')を呼び出して、ページを更新することはできますか?この仕事をするための私の選択肢は何ですか?すでに

答えて

0

おかげで私はあなたの構造は、以下に近いものでなければならないと思う:

  • 急行アプリはネットサーバーがデータで応答
  • ネットサーバを経由して要求を送信し、ブラウザ
  • ルートハンドラからの要求を受け付け、
  • 高速ルートハンドラがクライアントにデータで応答します

あなたの間違いは、httpサーバーとネットクライアント(ネットサーバーではない)があることです。 Sample net client.

0

解決策は、WebクライアントとWebサーバーの間にwebsocketを追加することです。 httpに関する問題は、サーバーからクライアントへのリクエストを行うことができないということです。サーバーは、クライアントからの要求に反応することができます。だから、WebSocketが必要です。サーバーからクライアントにメッセージ/データを送信することができます。受信したデータは、クライアントによって表示することができます。

関連する問題