2017-08-16 101 views
1

我使用node.js和express实现了我的第一个web应用程序。它工作正常。结构如下。现在如何在Node.js中将express与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}/ !`); 
}) 

我想与一个matlab程序进行通信,通过TCP/IP是优选的。 意思是我有一个matlab程序,与web应用程序交换数据。我通过实现这样的另一个端口与网络打开服务器发送数据:现在

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-Client和Web-Server之间集成websocket。关于http的问题是,你不能做从服务器到客户端的请求。服务器可以对来自客户端的请求做出反应。这就是为什么WebSocket是必要的。它允许从服务器向客户端发送消息/数据。接收到的数据可以由客户端显示。

相关问题