1. 程式人生 > >Nodejs簡單的套接字連接不工作

Nodejs簡單的套接字連接不工作

一個 ole nan 服務 console 數據 ons cti 功能

每2秒客戶機請求的數據app.get("/query_data"..我是連接到一個特定的IP地址+端口。

連接後,我發送一個字符串到這個地址來接收數據。 這工作得很好,但只有一次。

var socket = new net.Socket();
app.get("/query_data", function (req, res) {
socket.connect(2711, ‘192.168.1.173‘, function (err) {
if (err) {
console.log(err);
}
else {
socket.write("d"); // send "d" to trigger socket.on("data")

}
});

socket.on(‘data‘, function (data) {
res.send(data);
});
});
我收到錯誤消息:

錯誤(ERR_HTTP_HEADERS_SENT):不能設置標題後發送 到客戶端
然而,當我把var socket = new net.Socket();內部app.get()它的工作原理。

app.get("/query_data", function (req, res) {
var socket = new net.Socket();
socket.connect(2711, ‘192.168.1.173‘, function (err) {

if (err) {
console.log(err);
}
else {
socket.write("d");
}
});

socket.on(‘data‘, function (data) {
res.send(data);
});
});
這是為什麽呢? 我不希望創建一個新的套接字每次客戶端從服務器請求數據。

客戶端,它的包裝在2秒setTimeout()功能:

$.get("/query_data", function (data) {
data = data.replace(/[[]&]+|nan/g, ‘null‘);
console.log(JSON.parse(data));

(....)
});

Nodejs簡單的套接字連接不工作