nodejs版本升级/降级(使用nvm对node版本进行管理及切换)

前言

在项目开发过程中,不同项目使用的node版本可能不同,过高或者过低都可能会导致报错,所以我们通常使用nvm对node版本进行管理,根据不同项目要求的版本进行灵活切换。

本文主要讲述如何使用nvm对node版本进行管理。

1、卸载本地已安装的node.js版本

node -v
查看本地安装node版本

where node
查看本地安装的node路径

D:\smaple>node -v
v16.13.2

D:\smaple>where node
C:\Program Files\nodejs\node.exe

D:\smaple>

docker mysql报错:standard_init_linux.go:228: exec user process caused: exec format error

问题描述:
docker mysql镜像(基础镜像mysql:5.7.31),在windows系统可以正常构建并运行,迁移至麒麟操作系统时,构建时报错:

standard_init_linux.go:228: exec user process caused: exec format error

dockerfile内容:

# 基础镜像
FROM mysql:5.7.31
# author
MAINTAINER whw

# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/

问题分析:
1、查看Windows主机架构(docker version命令):

docker-version-win.pngdocker-version-win.png

websocket重连及心跳机制完整示例

重连机制和心跳机制是保证websocket连接可靠性的两种重要机制。

1、心跳检测机制

  • 定期发送心跳消息到服务器,如果服务器在预定时间内没有收到心跳消息,它可以假设连接已断开,并采取响应措施,如关闭连接或尝试重新连接。
  • 同时,在服务器端也实现相应的心跳响应逻辑,以确保双向通信的可靠性。

2、重连机制

  • 在客服端实现一个重连机制,当websocket连接断开时,可以自动尝试重新建立连接。
  • 重连机制应该有一定的退避策略,比如指数退避,避免在短时间内频繁尝试重连导致额外的网络负担。

本文我们以vue页面为例来说明,前端页面如何建立websocket连接,以及重连机制和心跳机制的实现。

完整示例:

Nginx支持websocket配置

前言

wss协议实际就是websocket+ssl,就是在websocket协议上加入ssl层,类似https(http+ssl)。

Nginx websocket代理主要配置:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

ws配置示例

server {
    listen 80;
    server_name yourdomain.com;

    location /websocket {
        proxy_pass http://localhost:8000;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}