2017-09-27 55 views
2

我一直在尋找這個Socket.io MVC node.js,但我目前正在掙扎。Socket.io MVC node.js發射到房間

它說,在文檔中:

Socket.io API的

由於Socket.MVC僅僅是Socket.io一個包裹機構,所有的 相同的API可以使用Socket使用.MVC模塊。 (取決於您的版本)請所有API的可用的 列表通過訪問Socket.io Github上 頁面,或http://socket.io

我的問題是,我不能找到一種方法來發射插座MVC到房間。

socketMVC.to(userid).emit('message', {message:2}); 

應該可以工作,但事實並非如此。任何想法我可以做到這一點?

編輯: 用戶id與此處指定的相同: import * as'from'socket.io-client';

下載

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!!!'); 
    }); 
}; 
+0

你確定'userid'是正確的嗎? – Phix

+0

userid @Phix,與我分配的相同。所以是 – maria

+0

請問您可以添加完整的代碼嗎? – Arkerone

回答

1

通過socketMVC.io.to更換socketMVC.to

+0

將在12小時內檢查。那會從理論上解決它嗎? – maria

+0

我在我的本地項目中測試過它的工作原理 – Arkerone

+1

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/17508491) – bennygenel

1

我從來沒有使用過Socket.IO MVC,但在讀完你的文章後,我想我永遠不會使用它。它看起來不像MVC,它完全不是封裝。我寫了一個MVC框架(包括HTTP和套接字),我認爲當你把你的代碼放在控制器中時,它只能算作MVC,而不是io.on(「連接」)本身。