2016-06-18 7 views
0

Ich habe einen Chat-Raum mit socket.io und Express. Es funktionierte auf meinem localhost, aber wenn ich es auf GitHub hochladen, funktioniert es nicht. Ich suchte viel Zeit im Internet, fand aber nichts, wenn Sie mir helfen können, wird es fantastisch sein.socket.io funktioniert nicht auf dem Server, aber auf meinem localhost tut es

Code: html (Client)

<html> 
<head> 
    <title>Chat with your friend</title> 
    <style> 
    #chat{ 
     height:500px; 
    } 
    </style> 
</head> 
<body> 
    <div id="chat"></div> 
     <form id="send-message"> 
      <input size="35" id="message"></input> 
      <input type = "submit"></input> 
     </form> 

    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
    <script src="/socket.io/socket.io.js"></script> 
    <script> 
     jQuery(function($){ 
      var socket = io.connect(); 
      var $messageForm = $('#send-message'); 
      var $messageBox = $('#message'); 
      var $chat = $('#chat'); 


      $messageForm.submit(function(e){ 
       e.preventDefault(); 
       socket.emit('send message', $messageBox.val()); 
       $messageBox.val(''); 
      }); 

      socket.on('new message', function(data){ 
       $chat.append(data + "<br/>"); 
      }); 
     }); 
    </script> 
</body> 
</html> 

app.js (Server)

var express = require('express'), 
app = express(), 
server = require('http').createServer(app), 
io = require('socket.io').listen(server); 

    server.listen(8080); 

app.get('/', function(req, res){ 
res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function(socket){ 
socket.on('send message', function(data){ 
    io.sockets.emit('new message', data);  
}); 
}); 

package.json:

{ 
"name": "Chat", 
"version": "0.1.0", 
"priviate": true, 
"dependencies": { 
    "socket.io": "1.4.6", 
    "express": "4.14.0" 
    } 
} 
+0

Was bedeutet "auf Github hochladen"? Wo führst du deinen Server aus? – jfriend00

Antwort

0

Code Setzen auf Github werden nicht ausgeführt die Server für dich.

HyperDev könnte was Sie wollen.

Es wird Ihre Knoten-App kostenlos ausführen. Zählen Sie einfach nicht darauf, dass es zu 100% aufgeht.

Ich habe Ihren Code in eine project kopiert.

haben ein paar kleine Änderungen, um es auf hyperdev in Gang zu bringen:

  • jetzt lauscht auf Port 3000
  • jetzt jquery aus der https Quelle lädt anstatt http
  • Sie vertippt ‚private‘ in package.json;)

Um die laufende Seite anzuzeigen, klicken Sie auf 'Anzeigen', oben links.

Sie können dies in Ihr eigenes Projekt kopieren, indem Sie auf "Holly-bush", oben links, und auf "Remix Project" klicken. Dann können Sie Änderungen an diesem vornehmen und der Server wird für Sie aktualisiert.

Es ist eine gute Möglichkeit, Knoten Zeug zu testen.