0

这是我的网络服务器:

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)
}

where#p1是指 my 中段落元素的 id main.html。我知道我的套接字正在工作,但是我得到:

ReferenceError: testSocketData is not defined.

如何简单地将从我的 node.js 服务器接收到的数据传递给我的 Web 应用程序的其余部分?谢谢。

4

1 回答 1

2

您必须将该方法(以及 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());
});
于 2013-09-12T05:56:06.790 回答