Node.js socket.io未连接到客户端

Node.js socket.io未连接到客户端,node.js,socket.io,Node.js,Socket.io,这是一款使用node.js和socket.io的简单聊天应用程序。此应用程序在我的本地计算机上运行良好,但在我将其上载到服务器时无法运行:请 以下是客户端的代码片段: <script type="application/javascript"> var socket = io.connect(); eventHandler(socket); function eventHandler(socket) { socket.on('connec

这是一款使用node.js和socket.io的简单聊天应用程序。此应用程序在我的本地计算机上运行良好,但在我将其上载到服务器时无法运行:请

以下是客户端的代码片段:

<script type="application/javascript">
    var socket = io.connect();

    eventHandler(socket);

    function eventHandler(socket) { 
        socket.on('connect', function(){
            socket.emit('adduser', prompt("What's your name?"));
        });
        socket.on('error', function () {
            console.log("Connection error"); //It works after a few second with error
        });
    }

    $(document).ready(function(){
       .....
    });
</script>

你的页面似乎对我有用。在执行脚本之前,确保页面已完全加载。这是通过如下方式使用window.onload完成的:

<script>
    window.onload = function() {
        //Your code here
    }
</script>

它似乎安装在远程服务器套接字上。IO 0.9.16不是最新的。如果您是根据这一点编写代码的,那么这可能就是它不能像您预期的那样工作的原因

尝试将Socket.IO升级到1.0

此更改对我有效: 您编写了以下方法:

var socket = io.connect();
由于,我将此方法切换为:

var socket = io.connect('http://localhost:8080');
您可以用访问服务器时使用的任何ip地址替换localhost

另外,以防万一——如果您没有,那么在app.js文件中包含服务器上的连接通知会很有用。我的如下所示:

var fs=requirefs ,http=requirehttp ,socketio=requiresocket.io; var server=http.createServerfunctionreq,res{ res.writeHead200,{内容类型:text/html}; res.endfs.readFileSync__dirname+/index.php; }.listen8080,函数{ console.logathttp://localhost:8080; }; socketio.listenserver.onconnection,functionsocket{ console.logCONNECTED; socket.onmessage,functionmsg{ 接收到console.logMessage:,消息; socket.broadcast.emitmessage,msg; };
};可能本地主机和远程服务器上安装了不同版本的Socket.IO,在我的Chrome 35.0.1916.153I上运行良好。我与服务器代理联系过。他们建议我使用“https”而不是“http”。有了“https”,它就可以工作了。谢谢大家。