如何在Node.js中将express与tcp-socket结合起来
问题描述:
我使用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('/')来刷新页面。我有什么选择来完成这项工作?
由于已经
答
我想你的结构应该是接近以下几点:
- 快递应用接受来自浏览器请求
- 路由处理程序通过网络服务器
- 网络服务器与数据响应发送请求
- 高速路由处理程序以数据响应客户端
所以,你的错误是你将有HTTP服务器和网络客户端(非网络服务器)。 Sample net client.
答
我意识到的解决方案是另外在Web-Client和Web-Server之间集成websocket。关于http的问题是,你不能做从服务器到客户端的请求。服务器可以对来自客户端的请求做出反应。这就是为什么WebSocket是必要的。它允许从服务器向客户端发送消息/数据。接收到的数据可以由客户端显示。