Javascript node.js从脚本调用函数以更新UI
这是我的Web服务器:Javascript node.js从脚本调用函数以更新UI,javascript,jquery,html,node.js,websocket,Javascript,Jquery,Html,Node.js,Websocket,这是我的Web服务器: 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);
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
指mymain.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());
});
我不明白-我是否应该将所有Web服务器代码移到我的
update\u ui.js
脚本中,然后运行node update\u ui.js
而不是node webserver.js
?或者将UI更新功能放在webserver.js
脚本中?这里是新的node.js用户。您无法从服务器访问客户端的方法。您必须从服务器发送所需的数据和文本。这就是全部!在客户端,必须侦听数据并应用testSocketData方法。这就是为什么我说您必须将它从服务器端移动到客户端,并提供一种在服务器中侦听和发送数据的机制。这就是为什么我说您必须将它从服务器端移动到客户端,并提供一种在服务器中侦听和发送数据的机制。
那么我该如何做?请看一看。他们在服务器上有一个socket.on('my other event')
,您必须有一个类似的侦听器,socket.on('data',function(data){var result=/*使用收到的数据执行一些计算。*/socket.emit('data',result)})现在,看看客户端,它们有一个socket.on('news')。您需要在客户端使用testSocketData声明和socket.on('data',function(data){testSocketData(data);});如果您有socket.Emit('evt1',someData),则Emit和on必须匹配;在服务器端,您必须在('evt1',函数(数据){})的客户端有socket.on。听起来不错,您能在回答中添加相关代码吗?谢谢