-1
我對Node.js使用'ws'庫。套接字沒有意義?
我可以編寫代碼,將數據從我的服務器發送到客戶端,發佈日期和時間更新,並在單擊按鈕時關閉套接字;
var wss = new WebSocketServer({server: server});
console.log("WebSocket server created");
wss.on('connection', function(socket) {
// SEND DATE AND TIME EVERY SECOND
\t var interval = setInterval(function() {
\t \t socket.send(JSON.stringify(new Date()), function() {});
\t }, 1000);
\t console.log("WebSocket connection opened");
\t socket.on('close', function() {
\t \t console.log("WebSocket connection closed");
\t \t clearInterval(interval);
\t });
});
<html>
<head>
<script>
var host = location.origin.replace(/^http/, 'ws')
var ws = new WebSocket(host);
ws.onmessage = function (event) {
var li = document.createElement('li');
li.innerHTML = JSON.parse(event.data);
document.querySelector('#pings').appendChild(li);
};
function pressed() {
// CLOSE STREAM
ws.close();
}
</script>
</head>
<body>
<h1>Pings</h1>
<form name="form1" method="post" action="">
<input type="button" value="Call server" onClick="pressed()">
<ul id='pings'></ul>
</body>
</html>
但由於某些原因,我不能想出一個辦法,將數據發送回老家到服務器,並調用控制檯打印「按下!」管他呢。這是一種限制,因爲它不是雙向的,它看起來像套接字是單向流。
像這樣;
var wss = new WebSocketServer({server: server});
console.log("WebSocket server created");
wss.on('connection', function(socket) {
// SEND DATE AND TIME EVERY SECOND
\t var interval = setInterval(function() {
\t \t socket.send(JSON.stringify(new Date()), function() {});
\t }, 1000);
\t console.log("WebSocket connection opened");
// LOOK FOR 'pressed' BEING SENT
\t socket.on('pressed', function() {
\t \t console.log("Pressed!");
\t \t socket.close();
\t });
\t socket.on('close', function() {
\t \t console.log("WebSocket connection closed");
\t \t clearInterval(interval);
\t });
});
<html>
<head>
<script>
var host = location.origin.replace(/^http/, 'ws')
var ws = new WebSocket(host);
ws.onmessage = function (event) {
var li = document.createElement('li');
li.innerHTML = JSON.parse(event.data);
document.querySelector('#pings').appendChild(li);
};
// SEND 'pressed' TO SERVER
function pressed() {
ws.send('pressed');
}
</script>
</head>
<body>
<h1>Pings</h1>
<form name="form1" method="post" action="">
<input type="button" value="Call server" onClick="pressed()">
<ul id='pings'></ul>
</body>
</html>
我缺少什麼,剛開始學習有關插座,感覺就像我試圖通過磚牆用棉勺子挖。
真的,有人決定downvote一個關於插槽進行數據交互的誤解?合法的。 – ARMATAV