最佳方式从HTML应用程序通过TCP IP客户端发送短字符串
我正在做一个项目,我必须通过TCP IP套接字发送不同的字符串(START,PAUSE,STOP),以通知服务器。
我想要做的是通过按下HTML应用程序上的按钮发送字符串(START,STOP,PAUSE)。 ***按下JSON文件上的按钮后,我将fs.writeFile一个空字符串。我只想在我的JSON文件中有一个字符串。
我尝试直接从客户端发送一些自定义字符串(客户端Send.write('TEST');)服务器可以很好地接收它们
我尝试通过PHP发送不同的变量,然后发送JSON文件但我似乎无法访问JSON文件,即使我的服务器正在运行。我想知道从html页面向发送字符串的客户端发送单个字符串单词的最佳方法是什么
我试图发送到一个PHP文件,然后发送回一个JSON文件,但从来没有让它工作。
节点JS客户端:
const IP = '127.0.0.1';
const SENDPORT = 3456;
setInterval(function() {
var clientSend = new net.Socket();
clientSend.connect(SENDPORT, IP, function() {
console.log('Connected');
fs.readFile('/string.json', (err, data) => { //might be wrong
if (err) throw err;
console.log(data);
});
clientSend.write(data);
clientSend.destroy();
});
clientSend.on('close', function() {
console.log('Connection closed');
clientSend.destroy();
});
}, 10000);
HTML页面:
(...)
Start button:<button id="buttonStart"; style="background:green;
cursor:pointer;width:300px;height:100px;">Start</button>
<br><br><br>>
Pause button:<button id="buttonStart"; style="background:orange;
cursor:pointer;width:300px;height:100px;">Pause</button>
<br><br><br>>
Stop button:<button id="buttonStart"; style="background:red;
cursor:pointer;width:300px;height:100px;">Stop</button>
<script
src=.3.1/jquery.min.js>
</script>
<script>
var start = 'start';
//This is where I have no clue what to do
$('#buttonStart').click(function() {
$.post("json.php", {JSON.stringify(start)}
);}
</script>
PHP
<?php
$json = $_POST['start'];
/* sanity check */
if (json_decode($start) != null) {
$file = fopen('/string.json','w+');
fwrite($file, $start);
fclose($file);
}
else {
//
}
?>
现在我真正想要得到的是JSON文件中的数据。它也可能是一个.txt文件或者之后我可以fs.read文件的任何其他东西。
我不能在HTML页面上使用任何NodeJS功能。
表现也很重要。如果有更好的选择来发布和阅读小字符串,请告诉我。
谢谢。
回答如下:我写的解决方案很好,但还不完整。我只是没有在php服务器上运行php代码,所以html页面正在读取一个简单的文本。
我下载了Wampserver,并在这台服务器上运行了php,而不是将所有内容组合在一起,并且完好无损。