我正在尝试用我的 Angular Js 项目实现 Socket IO。我是新手,请帮忙。
This is my server.js file
var express = require('express');
var path = require('path');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8080;
app.use(express.static(path.join(__dirname, "app")));
io.on('connection'), function(socket){
console.log('new connection made');
}
server.listen(port, function(){
console.log('Listening to port '+ port);
})
我已从 socket.io-client 复制了 socket.io.js 文件并将其放入我的 lib 文件夹中。所以我的 index.html 有
<script src="lib/js/socket.io.js"></script>
//all other includes required
<body>
//code here
</body>
这是我执行nodemon server.js时看到的错误
[nodemon] starting `node server.js`
events.js:216
throw new TypeError('"listener" argument must be a function');
^
TypeError: "listener" argument must be a function
at _addListener (events.js:216:11)
at Namespace.addListener (events.js:275:10)
at Server.(anonymous function) [as on]
(D:\SocketIOExperiment\ProjExperiment\node_modules\socket.io\lib\index
.js:456:29)
at Object.<anonymous>
(D:\SocketIOProject\SmartAdminExperiment\server.js:11:4)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
[nodemon] app crashed - waiting for file changes before starting...
最佳答案
代码上有一个小拼写错误。试试这个:
var express = require('express');
var path = require('path');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 8080;
app.use(express.static(path.join(__dirname, "app")));
io.on(('connection'), function(socket){
console.log('new connection made');
})
server.listen(port, function(){
console.log('Listening to port '+ port);
})
请记住,io.on(event,cb) 是将 cb 函数注册到事件的函数调用。
关于javascript - Socket io 实现,获取 TypeError ('"监听器“参数必须是函数”),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45611407/