有人用NODE做过TCP服务/客户端吗
我刚才用几行代码试了一下用Node做 tcp 的server跟client 感觉挺简单和流畅的,想问一下你们,有用node做过tcp服务端跟客户端的经验吗。
项目背景
- 需要做TCP接口,硬件向接口发送数据。
- 另外,还要做客户端进行数据的查看,管理等。
- 服务端亦会向硬件TCP接口发送数据。
感觉如何,适用吗,相比用其它语言,例如C#,用NODE有什么优势与劣势? 谢谢。
var net = require("net");
var client = new net.Socket();
client.connect(7777, "127.0.0.1", function () {
console.log("connected");
client.write("hello server");
});
client.on("data", function (data) {
console.log("receiving....");
console.log(data.toString("utf8"));
});
setTimeout(() => {
var buffer = new Buffer("hi", "utf8");
client.write(buffer);
console.log("wrote");
}, 2000);
setTimeout(() => {
var buffer = new Buffer("hi again", "utf8");
client.write(buffer);
console.log("wrote");
}, 5000);
3 回复
相比其他语言, 官方的库就蛮实用, 对底层封装的很好, 习惯异步编程, 事件机制或者流处理写起来很舒服.
没有太密集的 CPU 运算就好, 对数据的处理如果很复杂可考虑分开进程去做.
没有很完备的 Struct (结构体) 方案, 数据拼包可能需要自己下些功夫
- 语言本身没有任何优势,看你自己哪方面更熟悉啦。(如果放到 C# 来说,那基本 windows only 算是 C# 的劣势,虽然这个编程语言本身很棒)
- 相比自己设计协议,直接实现 HTTP 的一个子集可能更好。
- 如果考虑效率与流量,需要作二进制协议设计, 按 js 语言的功能,应该会麻烦死了吧。
都说了,看你哪个熟