我已经获取了最新的Mean.io的副本,并且与之前使用过的版本相比,我注意到了很多变化.现在,我正在做的是创建一个非常基本的聊天应用程序,使用
socket.io房间.按照Socket文档中的基本设置,我必须实现以下内容:
var app = require('express')(),server = require('http').createServer(app),io = require('socket.io').listen(server); server.listen(80); app.get('/',function (req,res) { res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection',function (socket) { socket.emit('news',{ hello: 'world' }); socket.on('my other event',function (data) { console.log(data); }); });
我在哪里定义基本的插座房设置?
socket.set("log level",1); var people = {}; var rooms = {}; var clients = [];
解决方法
您可以将socket.io设置为在服务器上侦听
/server/config/system/bootstrap.js
需要socket.io模块
var express = require('express'),appPath = process.cwd(),io = require('socket.io');
现在设置socket.io来监听你的应用程序
// Express settings var app = express(); require(appPath + '/server/config/express')(app,passport,db); io = io(app.listen(3000)); return io;
然后,您需要在bootstrapDependencies()函数中将socket.io对象注入到您的应用程序中.
function bootstrapDependencies() { ... // Register socket.io dependency mean.register('io',function() { return io; }); }
Mean.uses这个项目的依赖注入
https://www.npmjs.org/package/dependable
最后,您需要配置应用程序以侦听每个套接字连接
可能你想在主应用程序的路由器上执行这些操作
/server/routes/index.js
示例连接处理程序
var io = require('meanio').io; io.on('connection',function (socket) { // emit data to the clients socket.emit('news',{ hello: 'world' }); // event listeners socket.on('my other event',function (data) { // call your controller function here Controller.action(data); }); });
更重要的是,不要忘记在客户端设置socket.io.
// on '/server/views/includes/foot.html' <script src='/socket.io/socket.io.js'></script> <script> var socket = io(); </script>