NodeJS反向代理websocket
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
文章目录
NodeJS反向代理websocket
@[toc]
前言
代码
相关问题:
1.http和websocket不同端口对外暴露一个端口
2.nodejs反向代理
相关文章:
NodeJS结合express使用websocket
前言
虽然Nginx可以进行反向代理,但是与开发人员代码的贴合度不高,尤其是前端进行端口访问时,可能会存在由于Nginx设置反向代理而带来与程序不匹配的问题(比如前端代码不使用URL端口进行访问)。并且多个端口会带来Nginx的维护成本。在NodeJS结合express使用websocket一文中,可以将http和ws端口合并,但是有时需要分别使用http和ws两个端口。本文将介绍如何在nodejs代码级进行反向代理
代码
const express = require('express');
const proxy = require('http-proxy-middleware');
const app = express();
// var express = require('express');
// var http = require('http');
let https = require("https");
var expressWs = require('express-ws');
var fs = require('fs');
var option = {
key: fs.readFileSync('./keys/private.key'),
ca: fs.readFileSync('./keys/csr.pem'),
cert: fs.readFileSync('./keys/file.crt')
}
app.get('/', function (res, req) {
req.send('123')
})
var wsProxy = proxy({
target: 'https://localhost:8080', // 目标主机
changeOrigin: true, // 需要虚拟主机站点
ws: true, // 是否代理websocket
}); //开启代理功能,并加载配置
// 反向代理(这里把需要进行反代的路径配置到这里即可)
// eg:将/api/test 代理到 ${HOST}/api/test
app.use('/test', wsProxy);
serverProxy = https.createServer(option, app);
// 监听端口
serverProxy.listen(8888, () => {
console.log(`server running`);
});
serverProxy.on('upgrade', wsProxy.upgrade); // -- subscribe to http 'upgrade'
var app2 = express();
var httpServer;
// httpServer = http.createServer(app2);
httpServer = https.createServer(option, app2);
expressWs(app2, httpServer);
app2.ws('/test', function (ws, req) {
console.log("ok")
ws.send('你连接成功了')
ws.on('message', function (msg) {
// 业务代码
console.log(msg);
ws.send(msg)
})
})
app2.get('/', function (res, req) {
req.send('123')
})
// app.listen(8080);
// httpServer.listen(8080);
httpServer.listen(8080);
————————————————
版权声明:本文为CSDN博主「itas109」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/itas109/java/article/details/104034178
NodeJS反向代理websocket的更多相关文章
- Nginx实战之反向代理WebSocket的配置实例
http://www.jb51.net/article/112183.htm 最近在工作中遇到一个需求,需要使用 nginx 反向代理websocket,经过查找一番资料,目前已经测试通过,所以这篇文 ...
- Nginx反向代理websocket配置实例
最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版 ...
- NGINX: 反向代理 websocket
参考: [ Using multiple nodes ] [ Nginx 官网 WebSocket proxying ] 关于 websocket 的介绍可以看阮大大的这篇 [ WebSocket 教 ...
- 配置 Nginx 反向代理 WebSocket
用Nginx给网站做反向代理和负载均衡是广泛使用的一种Web服务器部署技术.不仅能够保证后端服务器的隐蔽性,还可以提高网站部署灵活性. 今天我们来讲一下,如何用Nginx给WebSocket服务器实现 ...
- CentOS安装Nginx,并配置nodejs反向代理
安装介绍 安装位置:/usr/local/nginx nginx安装包下载地址:http://nginx.org/download/nginx-1.7.11.tar.gz 安装依赖软件 安装nginx ...
- 配置Nginx反向代理WebSocket,以代理noVNC为例
什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...
- Nginx反向代理WebSocket(WSS)
1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...
- Nginx反向代理websocket配置实例(官网)
https://www.nginx.com/blog/websocket-nginx/ Blog Tech Rick Nelson of NGINX, Inc. May 16, 2014 NG ...
- nodejs反向代理插件anyproxy安装
目前我使用的是Anyproxy,AnyProxy .这个软件的特点是可以获取到https链接的内容.在2016年年初的时候微信公众号和微信文章开始使用https链接.并且Anyproxy可以通过修改r ...
随机推荐
- Altium Designer 3D
- tf.nn.sigmoid_cross_entropy_with_logits 分类
tf.nn.sigmoid_cross_entropy_with_logits(_sentinel=None,,labels=None,logits=None,name=None) logits和la ...
- mysql几个操作数据库命令符下的常用命令
1.导出整个数据库 mysqldump -u用户名 -p密码 数据库名 > 导出的文件名 C:\Users\jack> mysqldump -uroot -pmysql sva_rec & ...
- 数据结构和算法(Golang实现)(14)常见数据结构-栈和队列
栈和队列 一.栈 Stack 和队列 Queue 我们日常生活中,都需要将物品排列,或者安排事情的先后顺序.更通俗地讲,我们买东西时,人太多的情况下,我们要排队,排队也有先后顺序,有些人早了点来,排完 ...
- 复习python的多态,类的内部权限调用 整理
#多态的用法 class Dii: passclass Aii(Dii): def run(self): print('一号函数已调用')class Bii(Dii): def run(Dii): p ...
- Rescue BFS+优先队列 杭电1242
思路 : 优先队列 每次都取最小的时间,遇到了终点直接就输出 #include<iostream> #include<queue> #include<cstring> ...
- G. 蚂蚁的镜像串
单点时限: 1.0 sec 内存限制: 512 MB 一只聪明的蚂蚁在学习了回文串之后,一直觉得回文串不够优美,所以它决定自己定义一种新的字符串——镜像串 所谓镜像串,就是对一个字符串进行一整个完全的 ...
- JS 的基础概念
本篇文章主要讲述js的基础知识! 首先,我们要明白什么是JS,JS就是 javascript 的简称,是一种轻量级,弱类型的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能, ...
- Java前台传值至后台中文乱码
记一次常见问题 今天导入了一个网上下载的项目,运行后发现,前台传值 到Servlet,Servlet保存至数据库,数据库保存的中文数据出现乱码,检查了一下表中的编码是utf8没错. 输出测试了一下 原 ...
- 视频+图文 String类干货向总结
目录 一.字符串的介绍及视频讲解 二.字符串的两种创建方式 方法一:通过new创建 方法二:直接创建 三.字符串的长度获取:length()方法 四.使用 == 和equals()方法比较两个字符串 ...