Javascript Node.js在写入后保持连接而不关闭
我试图解释我的问题:Javascript Node.js在写入后保持连接而不关闭,javascript,node.js,connection-pooling,Javascript,Node.js,Connection Pooling,我试图解释我的问题: 我有一个每个用户连接的文件:user1.txt,user2.txt(包含javascript代码) 我有一个脚本,可以根据应用程序的发展来更新它们 每个用户调用一个文件demo.php: 客户端HTML: <!DOCTYPE html> <html lang="en"> <head> <title>demo game</title> <script src="/js/jquery-1.
- 我有一个每个用户连接的文件:user1.txt,user2.txt(包含javascript代码)
- 我有一个脚本,可以根据应用程序的发展来更新它们
- 每个用户调用一个文件demo.php:
<!DOCTYPE html>
<html lang="en">
<head>
<title>demo game</title>
<script src="/js/jquery-1.8.3.min.js"></script>
<script src="http://127.0.0.1:8080"></script>
</head>
<body>
<div id="messages"></div>
</body>
</body>
</html>
var server = require('http').createServer(function(req, res){
setInterval(function() {
mycode = html.readFileSync(__dirname+'/user1.txt');
socket.end(mycode+"\n");
console.log('data sent'+mycode);
}, 1000);
});
server.listen(8080);
假设user1.txt的内容是:$(“#消息”).append(
hello”)代码>
发送user1.txt的contain是可以的,并在客户端执行,但是,如果user1.txt包含更改,我会在console.log('data sent'+mycode)上看到它代码>,我想它发送了什么但没有执行,为什么
我尝试使用write()
而不是end()
,并尝试使用:
var net = require('net');
var html = require('fs');
var server = net.createServer({ allowHalfOpen: true},....
一样
再一次:如何在客户端发送“实时javascript代码”
提前感谢
Dany浏览器可以在呈现
之前加载脚本。在这种情况下,您的代码执行,位没有任何效果。尝试在user1.txt
中更改代码,如下所示:
$(function() {
$("#messages").append("<br> hello");
});
$(函数(){
$(“#消息”).append(
hello”);
});
浏览器可以在呈现
之前加载脚本。在这种情况下,您的代码执行,位没有任何效果。尝试在user1.txt
中更改代码,如下所示:
$(function() {
$("#messages").append("<br> hello");
});
$(函数(){
$(“#消息”).append(
hello”);
});
Vadim Baryshev的答案是正确的。还有一个注意事项:我看不到定义了socket
。我怀疑,setTimeout()
是否可以或者至少应该这样使用(虽然我对Node.js不是很熟悉)(但这可能只是为了您的调试,我很抱歉)。即使您使用write()
发送数据,也不要忘记使用end()
结束发送。正如Node.js的doc中所说:完成发送请求。Vadim Baryshev的回答是正确的。还有一个注意事项:我看不到定义了socket
。我怀疑,setTimeout()
是否可以或者至少应该这样使用(虽然我对Node.js不是很熟悉)(但这可能只是为了您的调试,我很抱歉)。即使您使用write()
发送数据,也不要忘记使用end()
结束发送。正如Node.js的doc中所说:完成发送请求。抱歉,瓦迪姆,我在日志中看到的是,我得到了user1.txt的新内容,但浏览器端没有任何更改。抱歉,我的失败。我没有完全理解你的问题。您试图以无限循环(setInterval)的方式将数据从user1.txt传输到浏览器?如果是-您使用了错误的方式。你需要使用插座Webscoket
或socket.io
应该可以正常工作。每个新的javascript命令都将作为单独的消息发送到客户端。很抱歉,瓦迪姆,我在日志中看到,我得到了user1.txt的新内容,但在浏览器端没有更改。很抱歉,我失败了。我没有完全理解你的问题。您试图以无限循环(setInterval)的方式将数据从user1.txt传输到浏览器?如果是-您使用了错误的方式。你需要使用插座Webscoket
或socket.io
应该可以正常工作。每个新的javascript命令都将作为单独的消息发送到客户端。你可以执行它。