无法建立我的连接

时间:2016-03-12 22:01:31

标签: firefox socket.io google-cloud-platform

我正在尝试通过谷歌云托管聊天应用程序,在第二次尝试后,我已经成功了,将端口号更改为8080后,只是为了查看html页面。

现在我的问题是在通过firefox检查元素之后,我无法再看到屏幕上显示的消息,我成功地看到我在我的电脑上托管它时。

尝试发送邮件时不断收到的错误消息是:

旁边有一个黑色X:

GET 
http://bla.appspot.com/socket.io/

然后:

Firefox can't establish a connection to the server at ws://bla/socket.io/?EIO=3&transport=websocket&sid=5Z6HGjPLI5L2ddNHAADj.

后:

POST 
XHR 
http://bla.appspot.com/socket.io/

Firefox can't establish a connection to the server at ws://bla.appspot.com/socket.io/?EIO=3&transport=websocket&sid=5Z6HGjPLI5L2ddNHAADj.

然后:

The connection to ws://bla.appspot.com/socket.io/?EIO=3&transport=websocket&sid=9Ps_KY0O0UvKfWePAADz was interrupted while the page was loading.

第二句和第三句长句不断冲洗并重复。

我不确定为什么socket.io出现在行尾,但出于某种原因它已经出现了。

以下是与发送和接收消息相关的代码:

"use strict";

var app = require ('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
    res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
    socket.on('chat message', function(msg){
        io.emit('chat message', msg);
    });
});

http.listen(8080, function(){
    console.log('listening on *:8080');
});

这是我的HTML文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Socket.IO chat</title>
    <style>
        *{ margin: 0; padding: 0; box-sizing: border-box; }
        body { font: 13px Helvetica, Arial; }
        form { background: #000; padding: 3px; position: fixed; bottom: 0; width: 100%; }
        form input { border: 0; padding: 10px; width: 90%; margin-right: .5%; }
        form button { width: 9%; background: rgb(130, 224, 255); border: none; padding: 10px; }
        #messages { list-style-type: none; margin: 0; padding: 0; }
        #messages li { padding: 5px 10px; }
        #messages li:nth-child(odd) { background: #eee; }
    </style>
</head>
<body>
<ul id="messages"></ul>
<form action="">
    <input id="m" autocomplete="off" /> <button>Send</button>
</form>
<script src="/socket.io/socket.io.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>
</html>

有人可以帮我这个吗?这真的让我烦恼不已,我似乎无法理解如何让它发挥作用。

提前致谢。

1 个答案:

答案 0 :(得分:2)

所以我发现了我的问题。

原来导致实际问题的是我的index.html

代码中的行
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>

它一直在工作,但在不同的浏览器上,这是因为不同的浏览器具有不同类型的安全性,以防止诸如窃听和中间人(MITM)攻击之类的攻击。

例如在Firefox / Chrome上进行测试会给我显示我显示的错误但是一旦我在IE上测试了它,我就能看到所有显示的消息,除了连接“打开”IE之外。< / p>

我找到了更多有用的错误,这些错误帮助我达到了Blocked loading mixed active content的这种结论,我能够发现如果我删除了

http:

<script src="http://code.jquery.com/jquery-1.11.1.js"></script>

这会阻止firefox / chrome阻止内容。