如需转载请标明出处: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的更多相关文章

  1. Nginx实战之反向代理WebSocket的配置实例

    http://www.jb51.net/article/112183.htm 最近在工作中遇到一个需求,需要使用 nginx 反向代理websocket,经过查找一番资料,目前已经测试通过,所以这篇文 ...

  2. Nginx反向代理websocket配置实例

    最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版 ...

  3. NGINX: 反向代理 websocket

    参考: [ Using multiple nodes ] [ Nginx 官网 WebSocket proxying ] 关于 websocket 的介绍可以看阮大大的这篇 [ WebSocket 教 ...

  4. 配置 Nginx 反向代理 WebSocket

    用Nginx给网站做反向代理和负载均衡是广泛使用的一种Web服务器部署技术.不仅能够保证后端服务器的隐蔽性,还可以提高网站部署灵活性. 今天我们来讲一下,如何用Nginx给WebSocket服务器实现 ...

  5. CentOS安装Nginx,并配置nodejs反向代理

    安装介绍 安装位置:/usr/local/nginx nginx安装包下载地址:http://nginx.org/download/nginx-1.7.11.tar.gz 安装依赖软件 安装nginx ...

  6. 配置Nginx反向代理WebSocket,以代理noVNC为例

    什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...

  7. Nginx反向代理WebSocket(WSS)

    1. WebSocket协议 WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法.作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难 ...

  8. Nginx反向代理websocket配置实例(官网)

    https://www.nginx.com/blog/websocket-nginx/ Blog Tech Rick Nelson of NGINX, Inc.   May 16, 2014   NG ...

  9. nodejs反向代理插件anyproxy安装

    目前我使用的是Anyproxy,AnyProxy .这个软件的特点是可以获取到https链接的内容.在2016年年初的时候微信公众号和微信文章开始使用https链接.并且Anyproxy可以通过修改r ...

随机推荐

  1. 谈谈CSS3中display属性的Flex布局(弹性布局)

    最近为了微信小程序,回忆起之前有接触过的弹性布局(display:Flex) 网上摘录的原文地址:https://www.cnblogs.com/xuyuntao/articles/6391728.h ...

  2. spring03

    学习了spring的数据源的使用以及spring的作用域引入外部属性文件 对应的bean的xml文件和properties文件如下 <?xml version="1.0" e ...

  3. 路由与交换,cisco路由器配置,静态路由

    网络是一个大型的拓扑结构,在路由表中,最重要的是管理距离和度量值 管理距离 管理距离用来确定路由的优先级.管理距离的范围是0-255之间的整数值.值越低代表优先级越高.0代表最高优先级.并且只有直连路 ...

  4. Linux网络安全篇,配置Yum源(二),阿里Yum源

    官网教程: https://opsx.alibaba.com/mirror 1.下载配置文件到 /etc/yum.repos.d 目录 wget -O /etc/yum.repos.d/CentOS- ...

  5. 程序员的 Ubuntu 19.10 配置与优化指南

    原文地址:程序员的 Ubuntu 19.10 配置与优化指南 0x00 环境 CPU: Intel Core i9-9900k GPU: GeForce RTX 2070 SUPER RAM: DDR ...

  6. 数据结构(C语言版)---线性表链式存储表示

    1.单链表:线性表的链式存储. 1)特点:用一组任意的存储单元存储数据元素(存储单元可以连续,也可以不连续),逻辑上相邻的元素存储位置不一定相邻. 2)结点包括两个域:数据域(存储数据元素信息).指针 ...

  7. ASE课程总结 by 冯晓云

    开始的开始,采访往届ASE班的blog:http://www.cnblogs.com/legs/p/4894362.html 和北航软工M1检查:http://www.cnblogs.com/legs ...

  8. Treasure Island DFS +存图

    All of us love treasures, right? That's why young Vasya is heading for a Treasure Island. Treasure I ...

  9. python3 xlwt,csv学习

    前言 对于抓取一些站点分析然后指纹识别的时候可能用到到它.所以学习下.这里就记录一些最基本的感觉有用的. xlwt 基本创建 demo: #coding=utf- import xlwt yunyin ...

  10. 最新VMware虚拟机安装Linux系统-CentOS(详细教程)

    一.前言 最近有网友反应初学Linx不会安装,找了许多教程不是太全面,总会遇到一些要不是启动不了,要不是连不上网,各种问题,为了让大家能够顺利的安装,小乐写了一个非常详细的教程,让大家少入坑. 二.背 ...