2012-09-13 111 views
0

我有我的node.js和socket.io安裝程序,並在我的本地機器上完美運行,但現在我正嘗試將其傳輸到我的實時服務器。找不到socket.io.js的路徑

我已經安裝了node.js和socket.io,他們正在工作,但我似乎無法通過我的客戶端鏈接到socket.io/socket.io.js文件。它讓回來了「500內部服務器錯誤」

我曾嘗試使用這兩條路徑:

<script type="text/javascript" src="/socket.io/socket.io.js"></script> 

<script type="text/javascript" src="https://localhost:8080/socket.io/socket.io.js"></script> 

爲什麼沒有被發現?

回答

0

「500內部服務器錯誤」通常意味着「服務器崩潰」或至少「服務器遇到異常」。所以這個問題可能不會丟失socket.io.js。

無論如何,當我在本地工作和遠程不工作之間存在差異時,有時候是由於環境變量的差異。你在哪裏部署node.js? Heroku,EC2,Joyent?

+0

我不知道我有足夠的經驗來了解你在部署node.js時的意思。我已經將它安裝在服務器上,並通過ssh運行server.js文件。 – Sneaksta

0

您是否更改了連接字符串?你是否檢查過瀏覽器檢查器,如果JavaScript文件被加載?

var sio = io.connect('http://yourdomain.com:80'); 
sio.socket.on('error', function (reason){ 
    console.error('Unable to connect Socket.IO', reason); 
}); 
+0

這不起作用,因爲它甚至找不到socket.io.js文件。我不明白爲什麼不。我是否必須在特定位置安裝socket.io? – Sneaksta

+0

不是。 ''我使用相同的鏈接,對我來說工作正常。檢查你的服務器端,重新安裝socket.io。特別是500是奇怪的,應該是404或200. – Patrick

+0

是的,我現在得到了404。不知道500是怎麼回事。不知道你是否注意到了,但我正在嘗試使用HTTPS協議。這可能是問題嗎?如果我使用HTTP,它似乎找到了這個文件,我認爲,但是然後firefox說它是不安全的。 – Sneaksta

0

在這裏我發佈兩個文件之一是chat.js和其他是chat.html。這有html.this作品中的socket.io.js的路徑。

1)chat.js:

var io = require("socket.io"); 
var socket = io.listen(1223); 
socket.set("log level", 1); 
var people = {}; 
socket.on("connection", function (client) { 
    client.on("join", function(name){ 
    people[client.id] = name; 
    client.emit("update", "You have connected to the server."); 
    socket.sockets.emit("update", name + " has joined the server.") 
    socket.sockets.emit("update-people", people); 
}); 
client.on("send", function(msg){ 
    socket.sockets.emit("chat", people[client.id], msg); 
}); 
client.on("disconnect", function(){ 
    socket.sockets.emit("update", people[client.id] + " has left the server."); 
    delete people[client.id]; 
    socket.sockets.emit("update-people", people); 
}); 

});

2)chat.html:使用命令

 <!DOCTYPE html> 
     <html lang="en"> 
     <head> 
     <script src="http://localhost:1223/socket.io/socket.io.js"></script> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"> </script> 
     <script> 
     $(document).ready(function(){ 
      var socket = io.connect("127.0.0.1:1223"); 
      $("#chat").hide(); 
      $("#name").focus(); 
      $("form").submit(function(event){ 
        event.preventDefault(); 
      }); 
      $("#join").click(function(){ 
       var name = $("#name").val(); 
       if (name != "") { 
        socket.emit("join", name); 
        $("#login").detach(); 
        $("#chat").show(); 
        $("#msg").focus(); 
        ready = true; 
       } 
      }); 
      $("#name").keypress(function(e){ 
       if(e.which == 13) { 
        var name = $("#name").val(); 
        if (name != "") { 
         socket.emit("join", name); 
         ready = true; 
         $("#login").detach(); 
         $("#chat").show(); 
         $("#msg").focus(); 
        } 
       } 
      }); 
      socket.on("update", function(msg) { 
       if(ready) 
        $("#msgs").append("<li>" + msg + "</li>"); 
      }) 
      socket.on("update-people", function(people){ 
       if(ready) { 
        $("#people").empty(); 
        $.each(people, function(clientid, name) { 
         $('#people').append("<li>" + name + "</li>"); 
        }); 
       } 
      }); 
      socket.on("chat", function(who, msg){ 
       if(ready) { 
        $("#msgs").append("<li><strong><span class='text-success'>" + who + "</span></strong> says: " + msg + "</li>"); 
       } 
      }); 

      socket.on("disconnect", function(){ 
       $("#msgs").append("<li><strong><span class='text-warning'>The server is not available</span></strong></li>"); 
       $("#msg").attr("disabled", "disabled"); 
       $("#send").attr("disabled", "disabled"); 
      }); 
      $("#send").click(function(){ 
       var msg = $("#msg").val(); 
       socket.emit("send", msg); 
       $("#msg").val(""); 
      }); 
      $("#msg").keypress(function(e){ 
       if(e.which == 13) { 
        var msg = $("#msg").val(); 
        socket.emit("send", msg); 
        $("#msg").val(""); 
       } 
      }); 

     }); 
    </script> 
    </head> 
    <body> 
    <div class="row"> 
     <div class="span2"> 
     <ul id="people" class="unstyled"></ul> 
     </div> 
     <div class="span4"> 
     <ul id="msgs" class="unstyled"></ul> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="span5 offset2" id="login"> 
     <form class="form-inline"> 
     <input type="text" class="input-small" placeholder="Your name" id="name"> 
      <input type="button" name="join" id="join" value="Join" class="btn btn-primary"> 
     </form> 
    </div> 
    <div class="span5 offset2" id="chat"> 
     <form id="2" class="form-inline"> 
     <input type="text" class="input" placeholder="Your message" id="msg"> 
     <input type="button" name="send" id="send" value="Send" class="btn btn-success"> 
     </form> 
     </div> 
     </div> 
    </body> 
</html> 

運行chat.js - 節點chat.js 並在瀏覽器中運行chat.html。