2016-07-07 15 views
0

Ich benutze node.js als Server und meine IP ist example.com:4000. Also sollte mein Endpunkt des Sockets auf der Serverseite beispiel.com: 4000 sein. Ich schaffe es, auch wenn ich versuche, etwas von localhost zu example.com: 4000 zu emittieren.Socket.io wird nicht von einer App ausgegeben? (ionic)

Aber wenn ich eine App habe (ich verwende ionische mit einem echten Gerät), aber der Socket scheint nicht das emit von socket.io zu senden. Ich frage mich, warum ich seit zwei Tagen versuche, dieses Problem zu beheben.

meinen Code auf Serverseite

var server = require("http").Server(express); 
var io = require("socket.io")(server); 
server.listen(400); 

io.on('connection', function(client) { 
    client.on('msg', function(data) { 
     console.log(data) 
    }); 
}); 

Client-Seite

//angular service 
.factory('socket',function(socketFactory){ 

    var myIoSocket = io.connect('http://example.com:4000'); 

    mySocket = socketFactory({ 
     ioSocket: myIoSocket 
    }); 

    return mySocket; 
}); 

//within my controller 
socket.emit('msg',data); 

zusammenfassen, um arbeitete Dinge auf localhost, aber nicht, wenn ich versuche, auf eine App?

+0

Bitte senden Sie mehr Details einschließlich deines Codes, also sind Leute ein kann Ihnen helfen. Willkommen bei StackOverflow! – betseyb

+0

@betseyb getan, fügte meinen Code hinzu. –

+0

und was ist der Fehler? –

Antwort

0

Versuchen Sie diesen Code ausführen, da ich weiß, dass Beispiel arbeitet:

Fabrik

MyApp.factory('socket', function ($rootScope) { 
    var socket = io.connect('http://localhost:9000'); 
    return { 
     on: function (eventName, callback) { 
      socket.on(eventName, function() { 
       var args = arguments; 
       $rootScope.$apply(function() { 
        callback.apply(socket, args); 
       }); 
      }); 
     }, 
     emit: function (eventName, data, callback) { 
      socket.emit(eventName, data, function() { 
       var args = arguments; 
       $rootScope.$apply(function() { 
        if (callback) { 
         callback.apply(socket, args); 
        } 
       }); 
      }) 
     } 
    }; 
}); 

-Controller

MyApp.controller('MainCtrl', function($scope, socket){ 
    $scope.users = []; 
    socket.emit('connection'); }); 
... 

Server-Seite

"use strict"; 
var express = require('express'); 
var app  = express(); 
var server = require('http').Server(app); 
var io = require('socket.io')(server); 
io.on('connection', function(socket) { 
    console.log('connected!'); 
    socket.on('disconnect', function() { 
    console.log('user disconnected'); 
    }); 
}); 
server.listen(9000, function() { 
    console.log('server up and running at 9000 port'); 
}); 
+0

was willst du hier sagen? Sogar mein Code ist in Ordnung. –

+0

es ist nur ein Test, hast du diesen Code getestet? –

+0

mein Code und Ihre haben die gleiche Logik. –