2012-09-13 58 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。