Sono nuovo su node.js e sto provando a scrivere un programma che riceve richieste HTTP e inoltra il contenuto attraverso un socket. All'altra estremità del socket c'è un sistema di paging che ha bisogno di messaggi terminati con un nuovo carattere di linea. Finora, funziona bene, tranne che c'è un messaggio extra inviato con il contenuto: undefined
.Come aggiungere un carattere di nuova riga in node.js?
Quando si stampa il contenuto del messaggio del cercapersone nel browser del client, non sembra esserci una nuova riga. Lo sto facendo bene?
sys = require("sys"),
http = require("http"),
url = require("url"),
path = require("path"),
net = require("net");
socket = new net.Socket();
socket.connect(4000, '192.168.0.105');
var httpServer = http.createServer(function(request, response) {
var uri = String(url.parse(request.url).query);
var message = uri.split("=");
var page = 'FPG,101,0,3!A' + message[0] + '\n';
response.writeHead(200, {"Content-Type":"text/html"});
response.write('sending message: ' + page + " to pager");
response.end();
socket.write(page);
}).listen(8080);
sys.puts("Server running at http://localhost:8080/");
MODIFICA: l'ho ristretto ulteriormente. Si scopre che se faccio:
var page = 'FPG,101,0,3!A' + 'hello' + '\n';
Funziona bene. Quindi l'output di uri.split("=")
non deve essere quello che mi aspetto.
Se guardi il traffico con [Wireshark] (http://en.wikipedia.org/wiki/Wireshark), fai vedi trailing ne wlines? Hai bisogno di inviare '\ r \ n' invece di solo' \ n'? – sarnold
No, ho funzionato in un'altra applicazione semplicemente inviando \ n, quindi so che è tutto ciò di cui ho bisogno. – David