簡體   English   中英

Socket.io不會通過單選按鈕在node.js和HTML腳本之間發送數據

[英]Socket.io does not send data between node.js and HTML script with a radio button

我正在嘗試與socket.io通信node.js和HTML腳本。 我正在嘗試通過單選按鈕選擇某個值時,socket.io將此值發送到node.js,然后返回控制台。 我的問題是socket.io沒有發送任何東西。 我知道它不會進入套接字功能,因為如果進入它,我會在html中寫一個警報,什么也沒有。
Node.js代碼是這樣的:

 var express = require("express"); var http = require("http"); var socketIO = require("socket.io"); var app = express(); app.get("/", function(req, res){ res.sendfile("./toggle?.html"); }); var server = http.createServer(app); var io = socketIO.listen(server, {log: false}); io.sockets.on("connection", function(socket){ socket.on("sendVar", function(value){ console.log(value) }); }); server.listen(5000); 

HTML腳本是這樣的:

  <html> <input type="radio" name="group1" value=1> ON<br> <input type="radio" name="group1" value=0 checked> OFF<br> <INPUT TYPE="Button" VALUE="Proceed" onClick="showBoxes(this.form)"> <script> var radios = document.getElementsByName('group1'); function showBoxes(frm){ for (var i = 0, length = radios.length; i < length; i++) { if (radios[i].checked) { var x=radios[i].value; alert(radios[i].value) //Send the value of the radio button var socket = io.connect("http://localhost:5000"); //client connection socket.on("connect", function(){ alert("connected!") socket.emit("sendVar", x); }); break; } } } </script> </html> 

您是否需要打開此Web套接字? 目前,您擁有的AJAX通話更適合。 您可以使用普通請求,使用express的響應方法來處理此問題。

您可以使用一個簡單的express get處理程序:

app.get('/', function(req, res){
  res.send('hello world');
});

或者您可以使用路由器:

var app = express();

app.route('/events')
.all(function(req, res, next) {
  // runs for all HTTP verbs first
  // think of it as route specific middleware!
})
.get(function(req, res, next) {
  res.json(...);
})
.post(function(req, res, next) {
  // maybe add a new event...
})

每種解決方案都比插座更合適。

來源: http//expressjs.com/api.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM