Socket.io简单节点应用程序不工作

我有这个小sockets房间的应用程序,但有一个原因是行不通的。 我试图让用户join房间点击并显示警报,无法找出问题,我有点新的套接字,甚至不能得到这个简单的应用程序工作..这是我的代码

////app.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) { socket.on('room', function(room) { socket.join(room); }); }); room = "abc123"; io.sockets.in(room).emit('message', 'what is going on, party people?'); http.listen(3000, function(){ console.log('listening on localhost:3000'); }); 

////index.html

 <!DOCTYPE html> <html> <head> <title>flip</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> </head> <body> <button>Join the room!</button> </body> <script> var socket = io.connect(); // let's assume that the client page, once rendered, knows what room it wants to join var room = "abc123"; socket.on('connect', function() { $('button').click(function() { socket.emit('room', room); }) }); socket.on('message', function(data) { alert(data) }); </script> </html> 

在客户端你必须:

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

在服务器端:

 io.on('connection', function(socket) { socket.on('room', function(room) { socket.join(room); room = "abc123"; io.to(room).emit('message', 'what is going on, party people?'); }); }); 

您不能发射,直到您收到连接。

你应该实例化一个新的io实例,就像这样:

 const socket = io();