Socket.io MVC node.js发射到空间
我一直在研究这个Socket.io MVC node.js,但我目前正在挣扎。
它在文档中说:
Socket.io API的
由于Socket.MVC只是Socket.io的包装机制,所有相同的API都可以使用Socket.MVC模块。 请通过访问Socket.io Github页面或http://socket.io (取决于您的版本)来查看所有API的列表。
我的问题是,我不能find一个方法来发送套接字MVC的房间。
socketMVC.to(userid).emit('message', {message:2});
应该工作,但事实并非如此。 任何想法我怎么能做到这一点?
编辑:用户ID是相同的分配在这里:导入*作为从'socket.io客户'的io;
下载
oninit: this.socket = io(this.socketurl); var privateRoom = socket.request.session.passport.user; socket.join(privateRoom); this.socket.on('message', (data) => { // this.messagesCounter = this.messagesCounter + 1; alert("OMG?"); });
编辑,在server.js
io.on('connection',function(socket) { console.log('user connected'); OnlineUsers.push(socket); // socket.join(''); console.log(socket.request.session.passport); console.log("user is connceted"); socketMVC.init(io, socket, { debug: true, filePath: ['./src/routes/sockets.js'] }); socket.on('disconnect', function(){ console.log('user disconnected'); }); socket.on('add-message',function (message) { io.emit('message', {type:'new-message', text: message}); }); socket.on('myevent', function(someData) { console.log("MYEVENT WORKS???????"); }); });
sockets.js
var path = require('path'); module.exports = function (socket) { var privateRoom = socket.request.session.passport.user; socket.join(privateRoom); socket.on('testing', function() { console.log('GOT SOME SORT OF RESPONSE!!!'); }); };
用socketMVC.to
replacesocketMVC.io.to
。
我从来没有使用过Socket.IO MVC,但是在阅读完后,我想我永远不会使用它。 它看起来不像MVC,它纯粹不是一个包装。 我已经写了一个MVC框架(包括HTTP和套接字),我认为当你把你的代码放在一个控制器中,而不是在io.on(“连接”)本身,它只能算作MVC。