相关疑难解决方法(0)

对socket.io使用http和https

我正在尝试使socket.io同时工作httphttps连接,但似乎我的配置它只能在其中一个上工作.

使用下面的配置选项socket.io可以通过访问我的应用程序https,但是当试图通过常规访问时http它无法连接并且我收到错误.

    var app = express()
  , http= require('http').createServer(app)
  , https = require('https').createServer(options, app)
  , io = require('socket.io').listen(https, { log: false })
Run Code Online (Sandbox Code Playgroud)

后来我有了这个

http.listen(80, serverAddress);
https.listen(443, serverAddress);
Run Code Online (Sandbox Code Playgroud)

在客户端我有这个:

<script src='/socket.io/socket.io.js'></script>

var socket = io.connect('https://<%= serverAddress %>', {secure: true, 'sync disconnect on unload' : true});
Run Code Online (Sandbox Code Playgroud)

当然,如果我分别用服务器和客户端的功能.listen和https选项切换http,.connect我会得到相反的结果.Socket.io可以通过http访问,而不是通过https访问.

怎么可能实现这个目标?我需要它主要是因为它是关于Facebook应用程序,所以它必须根据Facebook规则提供http和https连接选项.

编辑:如果它有助于解决问题,我收到的错误如下

Failed to load resource: the server responded with a status of 404 (Not Found) http://DOMAIN/socket.io/socket.io.js
Run Code Online (Sandbox Code Playgroud)

因此,我得到其他如下:

Uncaught ReferenceError: io is not …
Run Code Online (Sandbox Code Playgroud)

ssl node.js express socket.io

12
推荐指数
3
解决办法
2万
查看次数

简写http:// as //用于脚本和链接标签?有人看过/使用过吗?

问题如下:

如果您使用addthis(分享按钮)查看任何网站...

一旦你浮动addthis按钮,所有所需的资产加载使用firebug或chrome检查器(不是源,屏幕上的实际文档......对象检查器)查看文档的主体.你会注意到addthis自动加载的附加资产看起来像这样:

<script type="text/javascript" src="//s7.addthis.com/static/r07/menu78.js"></script>
<link rel="stylesheet" type="text/css" href="//s7.addthis.com/static/r07/widget61.css" media="all">
Run Code Online (Sandbox Code Playgroud)

在上面的标签中http://的简短处理是什么?

以前有人用过吗?它有'官方'名称吗?如何跨浏览器兼容这种简短处理http协议的方法?

是的,我知道这会破坏爬虫/ seo的东西,但我正在考虑开始在无法访问(主要是,js处理的东西)机器人的情况下使用它.

好的还是坏的?

html javascript protocols http shorthand

9
推荐指数
2
解决办法
3744
查看次数

https 上集群的套接字 IO 不起作用

根据 Socket IO 文档,我可以使用 http,但不能使用 https。我正在使用带有 http 集群的套接字 io,它工作正常,但当我在其上实现 https 时却无法工作。
我正在使用的套接字 IO 文档:- https://socket.io/docs/v4/cluster-adapter/

我的代码是

const cluster = require("cluster");
const https = require("https");
var fs = require("fs");
const { Server } = require("socket.io");
const numCPUs = require("os").cpus().length;
const { setupMaster, setupWorker } = require("@socket.io/sticky");
const { createAdapter, setupPrimary } = require("@socket.io/cluster-adapter");
const sslOptions = {
  key: fs.readFileSync("security/cert.key"),
  cert: fs.readFileSync("security/cert.pem")
};
const options = { cors: true, origins: "*" };
if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);

  const httpServer = …
Run Code Online (Sandbox Code Playgroud)

node.js socket.io

8
推荐指数
1
解决办法
1085
查看次数

无法使 socket.io 在 HTTPS 上工作

我正在使用简单的 socket.io 2.0.3 服务器,没有 express 或任何类似的东西来在我的 Laravel 应用程序中运行简单的聊天功能。

一切都运行良好,直到我决定将网站切换到 HTTPS。现在 socket.io 拒绝连接(ERR_CONNECTION_CLOSED)。

这是我最简单的设置:

服务器.js:

var io = require('socket.io')(8080, {
    origins : //some stuff
});
Run Code Online (Sandbox Code Playgroud)

HTML文件

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script>

var socket = io(':8080');
//more stuff
Run Code Online (Sandbox Code Playgroud)

我在服务器文件夹、intermediate.crt、domain.com.crt 和 domain.com.key 中有所有需要的证书文件

有人可以用最简单的例子来帮助如何在 https 上进行这项工作吗?提前致谢!

编辑:需要不使用 Express 的可能解决方案。

javascript sockets node.js socket.io

7
推荐指数
1
解决办法
6684
查看次数

通过SSL使用Socket.io Node.js的错误网关错误

我之前有一个Socket.io脚本在http上运行正常,但升级到https已经打破了它.我在服务器上安装了证书,但没有运气.服务器设置的代码是:

var https = require('https'),
    fs =    require('fs');

var options = {
    key:    fs.readFileSync('/etc/nginx/ssl/default/54082/server.key'),
    cert:   fs.readFileSync('/etc/nginx/ssl/default/54082/server.crt')
};
var app = https.createServer(options);

var io = require('socket.io').listen(app);
Run Code Online (Sandbox Code Playgroud)

但是,在Web浏览器中,页面无法连接到该页面,并且控制台显示the server responded with a status of 502 (Bad Gateway)响应.

关于脚本设置是否错误的任何想法?或者也许是Nginx设置中的某些东西?

非常感谢

编辑:我用来连接的前端代码:

<script type="text/javascript" src="https://socket.example.com/socket.io/socket.io.js"></script>
<script>
var io = io('https://socket.example.com', { secure: true });
</script>
Run Code Online (Sandbox Code Playgroud)

编辑:: Nginx配置:

# FORGE CONFIG (DOT NOT REMOVE!)
include forge-conf/socket.example.co.uk/before/*;

server {
    listen 443 ssl;
    server_name socket.example.co.uk;
    root /home/forge/socket.example.co.uk;

    # FORGE CONFIG (DOT NOT REMOVE!)
    include …
Run Code Online (Sandbox Code Playgroud)

ssl nginx node.js socket.io

6
推荐指数
1
解决办法
5333
查看次数

在now.js/socket.io聊天中增强安全性

nowjssocket.io聊天是您可以使用它们执行的最简单的练习之一.我想使用nowjs的Group对象实现多房间聊天(具有非固定数量的房间和登录用户).

我还没有直接使用过WebSockets,而且我想知道那里有什么安全问题.例如,我多久检查一次身份验证?

攻击者是否有可能"劫持"socket.io连接,我该如何防止它?

还有哪些其他安全陷阱需要关注?

node.js socket.io nowjs-sockets

5
推荐指数
1
解决办法
2748
查看次数