Tôi mới sử dụng node.js và tôi đang cố viết chương trình nhận yêu cầu http và chuyển tiếp nội dung thông qua một ổ cắm. Ở đầu kia của socket là một hệ thống phân trang cần thông báo kết thúc bằng một ký tự dòng mới. Cho đến nay, nó hoạt động tốt, ngoại trừ có một tin nhắn bổ sung được gửi với các nội dung: undefined
.Làm cách nào để nối thêm ký tự dòng mới trong node.js?
Khi tôi in nội dung của tin nhắn máy nhắn tin đến trình duyệt của khách hàng, có vẻ như không phải là một dòng mới. Tôi làm đúng chứ hả?
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/");
EDIT: Tôi đã thu hẹp hơn nữa. Nó chỉ ra rằng nếu tôi làm:
var page = 'FPG,101,0,3!A' + 'hello' + '\n';
Nó hoạt động tốt. Vì vậy, đầu ra của uri.split("=")
không được là những gì tôi mong đợi.
Nếu bạn xem lưu lượng truy cập bằng [Wireshark] (http://en.wikipedia.org/wiki/Wireshark), hãy bạn thấy dấu vết ne wlines? Bạn có cần gửi '\ r \ n' thay vì chỉ' \ n' không? – sarnold
Không, tôi đã làm việc này trong một ứng dụng khác bằng cách chỉ gửi \ n, vì vậy tôi biết đó là tất cả những gì tôi cần. – David