2017-09-27 3 views
2

Ich habe in diesem Socket.io MVC node.js untersucht, aber ich kämpfe derzeit.Socket.io MVC node.js emittieren zu Raum

Es heißt in der Dokumentation:

Socket.io API

Da Socket.MVC nur ein Wickelmechanismus für Socket.io ist, alle die gleiche API können die verwendet werden, um den Sockel mit .MVC Modul. Bitte beachten Sie eine Liste aller von der API zur Verfügung, indem die Socket.io Github Seite besuchen oder http://socket.io (je nach Version)

Mein Problem ist, dass ich einen Weg finden kann nicht Buchse MVC einen auszusenden Zimmer.

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

Sollte funktionieren, aber es nicht. Irgendeine Idee, wie ich das erreichen kann?

EDIT: Benutzer-ID ist die gleiche wie hier zugewiesen: importieren * als io von 'socket.io-Client';

herunterladen

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?"); 
      }); 

bearbeiten, in 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

Sind Sie sicher, dass "userid" korrekt ist? – Phix

+0

userid @Phix, ist das gleiche, dem ich es zugewiesen habe. also ja – maria

+0

Können Sie bitte den vollen Code hinzufügen? – Arkerone

Antwort

1

ersetzen socketMVC.to durch socketMVC.io.to.

+0

Wird in 12 h einchecken. Würde das theoretisch lösen? – maria

+0

Ich testete in meinem lokalen Projekt funktioniert – Arkerone

+1

Dies bietet keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/17508491) – bennygenel

1

Ich habe nie Socket.IO MVC verwendet, aber nach dem Lesen von Ihnen, ich denke, ich werde es nie verwenden. Es scheint nicht wie MVC, und es ist überhaupt kein Wrapper. Ich habe ein MVC-Framework (sowohl HTTP als auch Socket) geschrieben, ich denke, es zählt nur als MVC, wenn Sie Ihren Code in einen Controller setzen, nicht in die io.on ("Verbindung") selbst.

Verwandte Themen