我需要创建一个可以与CasparCG服务器通信的Web应用程序。服务器接受基本IP& IP的TCP连接。港口。然后通过连接发送字符串,然后触发内容。
我偶然发现了使用PHP作为主要通信工具的困境,因为每当PHP读取带有fread的响应时它就会出现,它会与服务器断开连接。脚本结束,因此连接终止。
我对使用任何语言的PHP或TCP连接的这部分经验很少。我不知道断开连接是否会影响整体性能,使得每个请求都延迟了C#TCP连接,这似乎能够保持活动状态,并在应用程序关闭或连接中止时断开连接。这就是我读到node.js。
的原因现在,对于这样的应用程序来说,更好的选择是将Node.js用作PHP吗?我已经有了一个良好的基础来开始使用AngularJS + PHP,但PHP就是问题所在。我没有使用node.js的经验,但我愿意接受它。
答案 0 :(得分:1)
是的,我建议你使用Node.js.你可以拿起网络模块。
var s = require("net");
var cn = s.createConnection({port: YourPortHere, host: YourHostHere}, callback); // createConnection and connect should be the same (cn is instance of net.Socket)
function callback(){
// Called when the connection is ready and so cn can be used
}
cn.on("data", function(data){
// Handle messages received by server (data is instance of Buffer)
if(data.toString("ascii") == "ping"){
s.write("pong!");
}
});
cn.on("end", function(){
// Disconnected
});
正如您所看到的,使用起来非常简单。 注意:如果您需要发送或解析特殊字符,可以更改编码,例如,接收回调的第10行:
if(data.toString("utf8") == "èùà") // BTW, the parameter is usually set by default to utf8, so there is no need to provide that, in theory.
发送特殊字符
cn.setEncoding("utf8");