socket.io 在服务器上不起作用,但在我的本地主机上它可以

socket.io doesnt work on the server but on my localhost it does

我和socket.io做了个聊天室和express。它在我的本地主机上工作,但当我将它上传到 github 时,它不工作。 我在网上搜索了很多时间,但一无所获所以如果你能帮助我,那就太棒了。

代码:html(客户端)

<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(服务器)

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"
    }
}

将代码放在 github 上 运行 不会为您提供服务器。

HyperDev可能就是你想要的。

它将运行 免费为您的节点应用程序。只是不要指望它有 100% 的时间。

我把你的代码复制到 project.

必须进行一些小的更改才能在 hyperdev 上运行:

  • 现在监听端口 3000
  • 现在从 https 源而不是 http
  • 加载 jquery
  • 您在 package.json 中打错了 'private' ;)

要查看 运行ning 站点,请单击左上角的 'Show'。

您可以通过单击左上角的 'holly-bush' 和 'Remix Project' 将其复制到您自己的项目中。然后你可以对那个进行更改,它会为你刷新服务器。

这是测试节点内容的好方法。