簡體   English   中英

Socket.io socket.emit不將數據傳遞到服務器

[英]Socket.io socket.emit not passing data to server

我正在嘗試使用Socket.io。 我有以下代碼。

這是我的index.html。

<!doctype html>
<html>
  <body>
    <ul id="messages"></ul>
    <form action="" onsubmit="return sayHello()">
      <input id="m" autocomplete="off" /><button>Send</button>
    </form>
    <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
    <script>
      var socket = io.connect('http://127.0.0.1:3001/');

    function sayHello(){
      var msg = document.getElementById('m');
      console.log(msg); <- This is getting printed. 
      socket.emit('message', msg.value);
      msg.value='';
      return (false);
    }

      // $('form').submit(function(){
      //   socket.emit('chat message', $('#m').val());
      //   $('#m').val('');
      //   return false;
      // });
      // socket.on('chat message', function(msg){
      //   $('#messages').append($('<li>').text(msg));
      // });
    </script>
  </body>
</html>

這是我的server.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
    console.log("GO!") <- This is getting printed
  socket.on('chat message', function(msg){
    console.log(msg); <- This is not getting printed. 
    io.emit('chat message', msg);
  });
});

http.listen(3001, function(){
  console.log('listening on *:3001');
});

我已經從Socket.io網站克隆了示例項目。 我試圖通過用VanillaJS替換Jquery來修改一些代碼。

您正在偵聽chat message但從客戶端發出message .emit提供的event名稱必須與.on處理程序中服務器上正在偵聽的event名稱匹配。

 //SERVER SIDE CODE var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); io.on('connection', function(socket) { console.log("GO!") < -This is getting printed socket.on('chat message', function(msg) { console.log(msg); < -This is not getting printed. io.emit('chat message', msg); }); }); http.listen(3001, function() { console.log('listening on *:3001'); }); 
 <!doctype html> <html> <body> <ul id="messages"></ul> <form action="" onsubmit="return sayHello()"> <input id="m" autocomplete="off" /> <button>Send</button> </form> <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script> <script> var socket = io.connect('http://127.0.0.1:3001/'); function sayHello() { var msg = document.getElementById('m'); console.log(msg); < -This is getting printed. socket.emit('chat message', msg.value); //-----------^^^^^^^^^^^^ Event name must match with the `.on` listener on the server! msg.value = ''; return (false); } </script> </body> </html> 

暫無
暫無

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

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