首页 > 编程语言 >使用nodejs ws模块连接websocket服务器Unexpected response code: 403错误解决

使用nodejs ws模块连接websocket服务器Unexpected response code: 403错误解决

时间:2024-07-02 18:20:06浏览次数:20  
标签:function Unexpected websocket nodejs client 403 error ws logger

使用浏览器连接websocket服务器时一切正常,但是使用nodejs ws模块连接时一直报Unexpected response code: 403错误,查了很多帖子都没说明白,最后自己试着一点一点对比模拟浏览器请求头,最终解决问题,解决后代码如下:

//TODO 不加这个,会报403错误
const options = {
    headers: {
        'Origin': 'http://localhost'
    }
};
let client = new ws(self.url,options);
    client.on("open", function () {
        logger.debug("connect success !!!!");
    });
    client.on("error", function(error) {
        //错误出现之后关闭连接
        logger.error('connect error:'+error.message);
    });
    client.on("close", function() {
        logger.error('与后端服务器断开连接!');
    });
    client.on("message", function(data) {
         logger.debug('接受到消息!');
    });

其实,修改服务器端逻辑也可以处理403错误问题,原因就是服务器端拿不到origin,无法保证请求的安全性,所以禁止连接

标签:function,Unexpected,websocket,nodejs,client,403,error,ws,logger
From: https://www.cnblogs.com/angryprogrammer/p/18280348

相关文章

  • 【Websocket】解析帧frame.c源码分析
    0.简介本文主要分析https://github.com/mortzdk/websocket中解析帧相关函数1.predict.h#ifndefwss_predict_h#definewss_predict_h#ifdefined(__GNUC__)||defined(__INTEL_COMPILER)/*__builtin_expect是GCC提供的一个内建函数,用于向编译器提示某个条件在大多......
  • 鸿蒙技术之WebSocket连接详解
    WebSocket连接详解WebSocket是一种在单个TCP连接上提供全双工通信信道的协议,它允许服务器主动向客户端推送数据,非常适合实时通信和数据交换频繁的应用场景。以下是WebSocket连接的详细步骤和知识点:1.创建WebSocket对象首先,需要通过createWebSocket()方法创建一个WebSock......
  • Websocket协议
    一、websocket简介websocket是在单个TCP连接上进行全双工通信的协议,允许Server主动向Client推送数据。客户端和服务器只需要完成一次握手,就可以创建持久性的连接,进行双向数据传输。websocket是独立的,作用在TCP上的协议。为了向前兼容,WebSocket协议使用HTTPUpgrade协议升......
  • python创建websocket服务器,实现循环发送消息
    WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更低延迟的双向通信。它允许客户端和服务器在任何时候发送消息,无需重新建立TCP连接。WebSocket可以在Web浏览器和服务器之间传输文本和二进制数据,使得构建实时Web......
  • nodejs 统计算指定后缀,格式的文件
    都是gpt生成的 可用版本constfs=require('fs');constpath=require('path');functioncountHtmlFiles(dirPath){letcount=0;constfiles=fs.readdirSync(dirPath);files.forEach(file=>{constfilePath=path.join(dirPath,......
  • [nodejs]package.json里的依赖版本
    依赖分类依赖根据开发环境需要和实际运行环境需要,分为dependencies和devDependencies。例如:typescript和eslint属于devDependencies,而vue和axios等属于dependencies。版本号组成版本由两部分组成,一是前面的前缀符号,二是版本号。这里先介绍版本号。版本号版本号的形式是:a.b......
  • [nodejs]package.json里的依赖版本
    依赖分类依赖根据开发环境需要和实际运行环境需要,分为dependencies和devDependencies。例如:typescript和eslint属于devDependencies,而vue和axios等属于dependencies。版本号组成版本由两部分组成,一是前面的前缀符号,二是版本号。这里先介绍版本号。版本号版本号的形式是:a.b......
  • 安装和使用nvm安装Nodejs
    文章目录安装和使用nvm1.安装nvm2.重新加载终端配置3.安装所需的Node.js版本4.使用安装的Node.js版本nvm常用命令安装和使用nvm以下是安装nvm并使用它来安装Node.js的步骤:1.安装nvm首先,您需要安装nvm。您可以使用curl或wget来完成安装:......
  • nodejs从基础到实战学习笔记-模块化、包
    二、模块化2.1什么是模块化模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。2.1.1把代码进行模块化拆分的好处提高了代码的复用性提高了代码的可维护性可以实现按需加载•如果程序设计的规......
  • 若依框架页面新增时,富文本加入图片保存时出现:JSON parse error: Unexpected character
    在使用若依框架的富文本框新增时,如果插入一个图片的时候会出现一个JSONparseerror:Unexpectedcharacter('/'(code47)):maybea(non-standard)comment?(notrecognizedasonesinceFeature'ALLOW_COMMENTS'notenabledforparser);nestedexceptioniscom.fas......