Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Socket.io聊天在服务器上不工作_Node.js_Socket.io_Chat_Openshift - Fatal编程技术网

Node.js Socket.io聊天在服务器上不工作

Node.js Socket.io聊天在服务器上不工作,node.js,socket.io,chat,openshift,Node.js,Socket.io,Chat,Openshift,我的聊天应用程序在本地服务器上正常工作,但当我将其推送到openshift服务器时,聊天功能不工作 我举这个例子: 下面是我的HTML代码 <body> <ul id="messages"></ul> <form action=""> <input id="m" autocomplete="off" /><button>Send</button>

我的聊天应用程序在本地服务器上正常工作,但当我将其推送到openshift服务器时,聊天功能不工作

我举这个例子:

下面是我的HTML代码

    <body>
        <ul id="messages"></ul>
        <form action="">
            <input id="m" autocomplete="off" /><button>Send</button>
        </form>
        <script src="https://cdn.socket.io/socket.io-1.2.0.js"></script>
        <script src="http://code.jquery.com/jquery-1.11.1.js"></script>
        <script>
            var socket = io();
            $('form').submit(function () {
                socket.emit('chat message', $('#m').val());
                $('#m').val('');
                return false;
            });
            socket.on('chat message', function (msg) {
                $('#messages').append($('<li>').text(msg));
            });
        </script>
    </body>
同样的代码在我的本地服务器上运行良好。现在,我只是简单地广播信息,包括发送者


我错在哪里?

您的聊天客户端需要连接到ws端口8000(或wss端口8443)上的websocket聊天服务器。确保在连接时指定端口号。

我知道时间有点晚,但文档未准备好,这导致了错误。 请尝试以下代码:

$( document ).ready(function() {
        var socket = io();
        $('form').submit(function(){
            socket.emit('chat message', $('#m').val());
            $('#m').val('');
            return false;
        });
    });
这个密码救了我。我忘了将脚本放在jquery文档ready中。最后的代码是这样的

  $( document ).ready(function() {
    var socket = io();
    $('form').submit(function(){
        socket.emit('chat message', $('#m').val());
        $('#m').val('');
        return false;
        });
     });

什么不起作用?有错误吗?您在节点控制台上看到什么了吗?在浏览器控制台上?请发布错误的详细信息。您可以从任何目录中查看代码在Openshift上使用
$rhc tail-a appname
生成的日志日志日志日志日志:错误:在Function.module.处找不到模块“合并描述符”。\u在Function.module.处解析文件名(module.js:338:15)在module.require处加载(module.js:280:25)在module.require处加载(module.js:364:17)在require处加载(module.js:380:17)反对。(/var/lib/openshift/54720cf94382ecfd6c00037/app root/runtime/repo/node_modules/express/lib/ex press.js:5:13)at Module._compile(Module.js:456:26)at Object.Module._extensions..js(Module.js:474:10)at Module.load(Module.js:356:32)at Function.Module._load(Module.js:312:312:12)at Module.require(Module.js:364:17)
$( document ).ready(function() {});
  $( document ).ready(function() {
    var socket = io();
    $('form').submit(function(){
        socket.emit('chat message', $('#m').val());
        $('#m').val('');
        return false;
        });
     });