定期在运行时更改HTML主体的内容 - NodeJS

时间:2017-08-28 13:16:58

标签: javascript node.js runtime serverside-javascript

的index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body></body>
</html>

app.js

我有一个简单的UDP套接字和一个简单的HTTP服务器:

var socket = require( "dgram" ).createSocket( "udp4" );
socket.on("message", function ( message, requestInfo ) {
    document.body.innerHTML = message; // which obviously wrong
    // because the file is running on the client-side
    // I'm looking for something equivalent 
});

socket.bind(1247);

var http = require('http'), fs = require('fs');
fs.readFile('./index.html', function (err, html) {
   http.createServer(function(request, response) {
        response.writeHeader(200, {"Content-Type": "text/html"});
        response.write(html);
        response.end();
    }).listen(1247,'xx.xx.xx.xx');
});

我正在从另一台设备成功定期(每5秒钟)收到一条UDP消息。

每次收到UDP消息时,有没有办法在用户发出第一个请求后更改HTML正文的内容?

1 个答案:

答案 0 :(得分:1)

如果您希望服务器和客户端之间进行快速通信,并且服务器端处理是在套接字上获取消息,那么我建议使用socket.io

您可以在客户端和服务器之间建立Web套接字连接,并且服务器可以在收到消息时将消息发送给所有客户端。在您的客户端上,您的代码与您已创建的代码类似。这是来自socket.io docs的示例代码段。

socket.on('new message', function (data) {
    document.body.innerHTML = data;
    // do something with the new data
});

This answer包含一个好的socket.io示例。