Node.js + ExpressJS + Socket.IO TypeError:obj.on不是一个函数

我不幸在我的工作中遇到了障碍。 我有一个node.js + ExpressJS后端通过Socket.io连接到前端,并创build了服务器和客户端,如下所示:

app.js:

var express = require('express'); var app = express(); var server = require('http').Server(app); var io = require('socket.io')(server); // Routes and io.on statement with listeners on 'connection' server.listen(2000); io.listen(2000); 

index.html的:

 <!doctype html> <!--- html stuff ---> <script src='/socket.io/socket.io.js'></script> <script src='/js/jquery.min.js></script> <script> $(document).ready(function() { var socket = new io.Socket('localhost', {port: 2000}); socket.connect(); // other js that doesn't get picked up }); </script> 

当我在浏览器中打开我的控制台时会发生什么情况:

 io.connect(); TypeError: obj.on is not a function 

我错过了什么,或者是不幸陷入了我的代码?

请尝试更改您的index.html:

 var socket = new io.Socket('localhost', {port: 2000}); socket.connect(); 

至:

 var socket = io.connect();