我实际上正在处理一个小应用程序。我有一个用C语言编写的服务器正在侦听端口5260.另一方面,我有一个NodeJS客户端正在侦听端口7777.可以通过此端口访问HTML页面。在HTML页面中,我有一个简单的按钮。 当我点击这个消息时,会向我的NodeJS服务器发送一条消息并写在终端上。现在我想获取此命令并将其发送到仍在运行并等待请求的C服务器。
我的client.js:
var http = require('http');
var ejs = require('ejs');
var express=require('express');
var app = express();
app.engine('html', ejs.renderFile);
app.set('/', __dirname);
app.get('/', function(request,response) {
response.render('index.ejs.html');
})
var options = {
host: '192.168.1.154',
path: '/',
port: '5260',
method: 'POST'
};
app.post('/play', function(req, res){
var res = http.request(options);
console.log("START_BG;BG1\n");
});
app.listen(7777);
我的HTML文件:
<html>
<head>
<script type="text/javascript" src="client.js"></script>
<script type="text/javascript">
function sendMessage() {
var xhr = new XMLHttpRequest();
xhr.open('POST', '/play', true);
xhr.onload = function() {
console.log(xhr);
};
xhr.send();
}
</script>
</head>
<body>
<button onclick="sendMessage()">VIDEO</button>
</body>
</html>
答案 0 :(得分:0)
好。我在你的代码中看到了一些奇怪的东西
1您发送 192.168.1.254:5620/play 的帖子请求而不发送任何数据
2您没有等待请求结束并盲目地在控制台上打印而不检查结果。不知道它是否有所需的行为,但似乎有点奇怪
如果没有更多关于该场景的知识,很难提出一个想法。
无论如何,我建议你更正你的代码如下:
app.post('/play', function(req, res){
var res = http.request(options, function(response){
// do any checking about response status and/or body if any
console.log("START_BG;BG1\n");
});
});