我正在尝试通过谷歌云托管聊天应用程序,在第二次尝试后,我已经成功了,将端口号更改为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>
有人可以帮我这个吗?这真的让我烦恼不已,我似乎无法理解如何让它发挥作用。
提前致谢。
答案 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阻止内容。