繁体   English   中英

Node.js 从脚本调用函数来更新 UI

[英]Node.js calling a function from script to update UI

这是我的网络服务器:

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 is not defined.

如何简单地将从我的 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());
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM