簡體   English   中英

socket.emit不傳遞消息

[英]socket.emit not passing messages

我有以下js代碼

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


app.get('*', function (req, res){
  res.sendFile(path.join(__dirname, '/Public'));
});

app.use('/home',express.static(path.join(__dirname,'/Public')));

//app.use('/static', express.static(__dirname + 'index.html'));

io.on('connection', function (socket) {
  socket.on('message', function (data) {
  socket.emit('news', { hello: 'world' });
   });
    socket.on('another-message', function (data) {
    socket.emit('not-news', { hello: 'world' });
  });
});


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

我有HTML代碼

   <html>
    <h1>working</h1>
    <script src="/socket.io/socket.io.js"></script>
    <script>
      var socket = io.connect('http://localhost:3000', { path :'/' +home});
        socket.on('connect',function(){
        socket.emit('message', 'Hello server');
      });
       socket.on('news', function (data) {
        console.log(data);
        socket.emit('my other event', { my: 'data' });
      });
    </script>
    <body>
       <p>display a message</p>
      </body>
    </html>`

我轉到頁面localhost:3000 / home,我得到了HTML頁面。 但是在控制台中,我看不到任何消息。 我哪里錯了? 請糾正我。

為什么說控制台中沒有任何錯誤? 我有一個錯誤。 我將粘貼以下截圖:

錯誤

單擊該按鈕以查看哪里有錯誤。

我會為您節省時間。

在index.html中更改這一行

var socket = io.connect('http://localhost:3000', { path :'/' +home});

var socket = io.connect('http://localhost:3000');

之后,您將獲得以下內容:

成功

暫無
暫無

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

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