这是我的网络服务器:
var net = require('net');
var server = net.createServer(function(socket) {
socket.write('hello\n');
socket.write('world\n');
//RECEIVE PACKET ON SOCKET
socket.on('data', function(data) {
//socket.write(data);
//console.log(data);
testSocketData(data)
});
});
server.listen(8000);
方法 testSocketData(data)
位于文件 update_ui.js
中,并执行以下操作:
function testSocketData(test) {
$('#p1').text(test)
}
其中#p1
指的是我的main.html
中的段落元素的id。我知道我的套接字正在工作,但是我得到:
ReferenceError:testSocketData 未定义。
如何简单地将从 Node.js 服务器接收到的数据传递给 Web 应用程序的其余部分?
最佳答案
您必须将该方法(以及 socket.on('data'))从服务器移动到客户端。当您通过套接字接收消息时,p1 元素也会更新其文本。
在服务器上,您仍然需要有一个 socket.on('data') 来接收来自客户端的消息。
编辑: 这是一些代码,与我下面的评论略有不同。 在服务器上:
function computeSomeResults(data) {
// your logic here
}
socket.on('servermsg', function(data) {
var result = computeSomeResults(data);
socket.emit('clientmsg', result);
});
在客户端:
function testSocketData(test) {
$('#p1').text(test);
}
socket.on('clientmsg', function(data) {
testSocketData(data);
// emit something maybe?
}
最终,您可能想向服务器发送一些内容:
$('#p1').on('click', function(){
socket.emit('servermsg', $(this).text());
});
关于javascript - Node.js 从脚本调用函数来更新 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18756233/