socket.emit没有传递消息

时间:2016-01-27 06:59:27

标签: javascript node.js sockets socket.io

我有以下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页面。但在控制台中我看不到任何消息。我哪里错了?请纠正我。

1 个答案:

答案 0 :(得分:0)

为什么你说在控制台中没有出现任何错误?我收到了一个错误。我将粘贴一个截图:

Error

点击它以查看您遇到错误的位置。

我会节省你的时间。

在index.html中更改此行

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

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

之后你会得到这样的东西:

Success