2016-04-22 11 views
1

Das Problem, das hier auftritt, ist, dass, wenn ich Verbindung zwischen Beispiel socekt.io Client mit diesem socket.io Server von node.js (gerade ausgeführt zwei Terminals und Öffnen Socket-Verbindung zwischen Client und Server) Ich habe keine Probleme.

Aber wenn ich versuche, diesen socket.io-Client in meine Ember.js-Anwendung zu injizieren, leitet er meinen Client genau von ember-cli-mirage von der angegebenen Adresse um:
('http: // localhost: 8080')
um so etwas wie
http: //localhost:8080/socket.io/?EIO=3 & transport = Polling & .....
auch einen Fehler Mirage zeigt mir, dass ich nicht umgehen kann, auch durch präzise Einrichtung Namensraum, Routing der wsClient.connect() Methode oder Aufruf this.passthrough(), vor dem Aufruf wsClient.connect().ember-cli-mirage leitet den socket.io-Client um, der in mirage eingefügt wird


ich auch den Screenshot des Fehlers Paste aus inspizieren Konsole in Browser:

error image


Haben Sie eine Ahnung, wie dieses Problem zu lösen? Vielen Dank im Voraus und ich hoffe auch, dass das Thema nicht dupliziert wird.

// server.js 
var app = require('http').createServer(handler); 
var io = require('socket.io')(app); 
app.listen(8080); 

function handler(req, res) { 
    res.writeHead(200); 
    res.end('default.index'); 
} 

var rooms = { 
    'room1': [ 

    ], 
    'room2': [ 

    ] 
}; 

io.on('connection', function(socket) { 
    console.log('client connected'); 


    socket.on('join', function(roomName) { 
    rooms[roomName].push(socket.id); 
    socket.join(roomName); 
    }); 

    socket.on('leave', function(roomName) { 
    var toRemove = rooms[roomName].indexOf(socket.id); 
    rooms[roomName].splice(toRemove, 1); 
    socket.leave('roomName'); 
    }); 


    socket.on('eNotification', function(data) { 
    console.log(data); 
    io.to(socket.id).emit('eNotificationCall', data); 
    io.to('room2').emit('eventNotification', data); 
    }); 


    socket.on('gNotification', function(data) { 
    console.log(data); 
    io.to(socket.id).emit('gNotificationCall', data); 
    io.to('room1').emit('diagram1Notification', data); 
    }); 


    socket.on('close', function() { 
    console.log('client disconnected'); 
    }); 

}); 


//client.js 
var wsClient = { 
    socket: null, 
    connect: function() { 
    this.socket = io.connect('http://localhost:8080'); 
    this.socket.on('connect', function() { 

     console.log('mirage client connected!'); 
    }); 

    }, 
    send: function(eventData, graphData) { 
    this.socket.emit('eNotification', eventData); 
    this.socket.emit('gNotification', graphData); 
    } 

}; 
export default wsClient; 



//config.js 
import wsClient from './websockets/client'; 

export default function() { 
wsClient.connect(); 
console.log(wsClient.socket); 
var graphData = {X: "2", Y: "3"}; 
var eventData = {myDAta: 'myDAta', message: 'message'}; 
setInterval(function() { 
    wsClient.send(graphData, eventData); 
}, 5000); 
} 

Antwort

2

Wenn Sie this.passthrough() ohne args nennen es erlaubt nur Anfragen auf der aktuellen Domäne-Passthrough. Es sieht aus wie die WebSocket-Verbindung auf einem anderen Port ist, so versuchen Sie es direkt spezifizieren:

this.passthrough('http://localhost:8080/**'); 

Siehe the docs für weitere Informationen.

+0

Vielen Dank für Ihre Antwort, aber ich habe immer noch ein Problem. Ich kann eine Verbindung zu meinem Server herstellen, aber diese Verbindung ist nicht stabil - sie trennt die Verbindung so schnell, wie sie sich mit dem Server verbindet. Es sieht so aus, als würde Fata Morgan meine Verbindungsmethode in der Schleife aufrufen. Ich weiß immer noch nicht, wie ich es lösen soll, hast du eine Idee? – tekobylinski

+0

Können Sie eine Momentaufnahme des Fehlers posten? Fühlen Sie sich auch frei, um # ec-mirage in Ember's slack beizutreten –

+0

Entschuldigung für die Verschwendung Ihrer Zeit, fand mein Freund Lösung für dieses Problem, das ich verpasst habe - [Thema mit Lösung] (http://stackoverflow.com/questions/28238628/ socket-io-1-x-verwenden-websockets-only). Vielen Dank für Ihre Hilfe! – tekobylinski

Verwandte Themen