NodeJS套接字连接无法正常工作

时间:2016-03-15 15:01:33

标签: javascript node.js sockets socket.io lamp

我正在尝试使用Socket.io创建一个实时网络聊天系统,但我也将它与LAMP堆栈一起使用。目前我只是想让我的HTML页面识别localhost:8888上的连接,但localhost:3000上的服务器端应该是控制台在有人连接时记录下面的内容,但我什么都没得到?

我在服务器端有这个 -

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

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

这是我的客户方 -

  <script src="http://localhost:3000/socket.io/socket.io.js"></script>

  <script>

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

    socket.on('connection', function(io){
      console.log('a user connected');
      io.on('disconnect', function(){
        console.log('user disconnected');
      });
    });               


  </script>     

我没有看到任何控制台日志?我称之为错误或

2 个答案:

答案 0 :(得分:0)

在名为“connect”的客户端连接事件上。您已将客户端侦听器移动到socke.io中的服务器,但客户端和服务器的事件不同,更多的是:http://socket.io/docs/client-api/

<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script>
  var socket = io('http://localhost:3000');
  socket.on('connect', function(){
    console.log('a user connected');
  });
  socket.on('disconnect', function(){
    console.log('user disconnected');
  }); 
</script>

答案 1 :(得分:0)

您需要在服务器上安装代码才能侦听连接。

io.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });
    socket.on('my other event', function (data) {
        console.log(data);
    });
});

有关详细信息,请参阅文档http://socket.io/docs/