【发布时间】:2018-05-29 06:24:04
【问题描述】:
我正在开发一个 gps 跟踪系统,并在 node js 上构建了一个服务器。 这是文件的外观以供参考。
const net = require('net');
const lora_packet = require('lora-packet');
const dataParser = require('./dataParser');
const clients = [];
net.createServer(function(socket) {
socket.name = socket.remoteAddress + ":" + socket.remotePort;
clients.push(socket);
socket.on('data', function(data) {
console.log("Buffer sent by terminal : ");
console.log(data);
const packet = lora_packet.fromWire(data, 'hex');
const str = packet._packet.PHYPayload.toString('hex');
dataParser.parse_data(str, socket);
});
socket.on('end', function() {
clients.splice(clients.indexOf(socket), 1);
//broadcast(socket.name + "has left the cartel.\n");
});
function broadcast(message, sender) {
clients.forEach(function(client) {
if (client === sender) client.write(message + "\nsent\n");
return;
client.write(message);
});
process.stdout.write(message);
}
}).listen(8080);
console.log("cartel is running on the port 8080\n");
此服务器文件仅处理来自硬件的请求并处理原始 tcp/ip 请求。
我希望服务器也能处理 http 请求,并希望在服务器中加入路由功能,以便浏览器的客户端应用程序。
1) 有没有什么方法可以让同一台服务器处理 http 请求,或者我应该打开另一个端口并在其上部署一个 express node js 应用程序?
2)如果我使用同一个8080端口进行http,如何实现路由?
3) 如果我为 http 和原始 tcp/ip 使用不同的端口,那么两台服务器之间通信的最佳方式是什么。 tcp/ip server 和 http server 之间的通信应该通过 socket 进行(动态发送数据)。
从使用套接字的http服务器,数据必须动态发送到浏览器以更新实时位置
那么流程对吗?
硬件()TCP/IP服务器()Http服务器()浏览器
如果需要更多信息来解决查询,我会提供!
谢谢
【问题讨论】:
标签: javascript node.js express gps