`

websocket wss https

 
阅读更多
keytool -genkey -alias websocket -keyalg RSA -keystore ./ws.jks -validity 3650  -storepass 123456

keytool -importkeystore -srckeystore ./ws.jks -destkeystore ./ws.jks -deststoretype pkcs12





server.ssl.key-store=classpath:ws.jks

server.ssl.enabled=true

server.ssl.key-alias=websocket

server.ssl.key-store-password=123456

server.ssl.ciphers=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256





import javax.annotation.Resource;



import org.eclipse.paho.client.mqttv3.MqttException;

import org.eclipse.paho.client.mqttv3.MqttPersistenceException;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.ApplicationArguments;

import org.springframework.boot.ApplicationRunner;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.web.socket.config.annotation.EnableWebSocket;

import org.springframework.web.socket.config.annotation.WebSocketConfigurer;

import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;

@SpringBootApplication

@EnableWebSocket

public class Application implements ApplicationRunner, WebSocketConfigurer {

	@Autowired

	private R01MqttDisruptorListener r01MqttDisruptorListener;

	@Resource

	MqHandler mqHandler;



	@Override

	public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {



		registry.addHandler(mqHandler, "/mq");



	}



	public static void main(String[] args) throws Exception {

		Application app = new Application();

		SpringApplication.run(Application.class, args);



	}

}







import org.springframework.stereotype.Component;

import org.springframework.web.socket.CloseStatus;

import org.springframework.web.socket.TextMessage;

import org.springframework.web.socket.WebSocketHandler;

import org.springframework.web.socket.WebSocketMessage;

import org.springframework.web.socket.WebSocketSession;



import com.alibaba.fastjson.JSON;

@Component

public class MqHandler implements WebSocketHandler{



}

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SSLConfig {

    @Bean
    public TomcatServletWebServerFactory servletContainer() { //springboot2 新变化

        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {

            @Override
            protected void postProcessContext(Context context) {

                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
        return tomcat;
    }

    private Connector initiateHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(18888);//http端口
        connector.setSecure(true);//这个坑,网上普遍为false重定向容易出错,我这里设置为true
        connector.setRedirectPort(19999);
        return connector;
    }

}



var tprotocol = window.location.protocol;
	var ws;
	if (tprotocol == "http:")
		ws = new WebSocket("ws://localhost:18888/mq");
	else
		ws = new WebSocket("wss://localhost:19999/mq");

 

分享到:
评论

相关推荐

    java实现websocket的wss协议,netty做服务端支持ssl协议

    基于netty的websocket服务,配置阿里云ssl证书,实现正式服务器的wss访问;适用于JAVA服务器部署访问;对应生成博客地址https://mp.csdn.net/mp_blog/creation/editor/130410613

    webSocket配置wss访问

    本篇文章将详细讲解如何在Spring Boot 2.1环境中配置WebSocket,特别关注如何启用wss(WebSocket over SSL)以支持安全的HTTPS访问。 首先,我们需要理解SSL(Secure Sockets Layer)和其更新版本TLS(Transport ...

    netty做服务端支持ssl协议实现websocket的wss协议(java)

    WSS是WebSocket的加密版本,它通过SSL/TLS提供安全的通信,类似于HTTPS对于HTTP的关系。 首先,要理解SSL(Secure Sockets Layer)和其更新版本TLS(Transport Layer Security)的作用。它们为网络通信提供了加密和...

    Android开发wss所需要的jar包,含websocket类

    WSS(WebSocket Secure)是在WebSocket之上添加了SSL/TLS加密层,类似于HTTPS相对于HTTP的关系。通过SSL证书,WSS确保了通信过程中的数据完整性、保密性和服务器身份验证,保护用户信息免受中间人攻击。 3. **Java...

    PHP进阶系列之swoole入门精讲下.rar

    本教程你将学习到多进程与多线程server的使用,client使用数据共享table以及atomic,使用http server websocket wss https配置,使用 process以及多进程爬虫实战,coroutine协程服务器性能参数调优 tp5.1使用swoole...

    PHP进阶系列之swoole入门精讲中.rar

    本教程你将学习到多进程与多线程server的使用,client使用数据共享table以及atomic,使用http server websocket wss https配置,使用 process以及多进程爬虫实战,coroutine协程服务器性能参数调优 tp5.1使用swoole...

    PHP进阶系列之swoole入门精讲上.rar

    本教程你将学习到多进程与多线程server的使用,client使用数据共享table以及atomic,使用http server websocket wss https配置,使用 process以及多进程爬虫实战,coroutine协程服务器性能参数调优 tp5.1使用swoole...

    websocket消息推送_windows+nginx+wss+https.rar

    linux下为nginx+wss+https模式,重点是https和wss以及vue打包的nginx兼容配置。另外还包含在linux+php.exe下永久运行php文件的方法和杀死永久运行进程的方法以及开启防火墙端口的方法,都写在了说明里!

    websocketpp客户端wss连接源码

    这个库提供了一种方便的方式来处理WebSocket协议,包括安全的WSS(WebSocket over SSL/TLS)连接。本篇文章将深入探讨如何使用WebSocketpp库来创建一个WSS连接的客户端,并发送及接收数据。 首先,WebSocketpp库...

    qwebsocket使用wss连接工程源码,qt5.7,debug下面已经包含ssl依赖库

    WSS是WebSocket的加密版本,类似于HTTPS之于HTTP,通过SSL/TLS协议提供安全的连接。WSS确保了数据在网络中的传输是加密的,可以防止中间人攻击,保护用户的隐私和数据安全。在使用WSS时,客户端和服务器之间的通信将...

    android利用WebSocket实现消息推送

    .url("wss://your-websocket-server-url") .build(), new WebSocketListener() { @Override public void onOpen(WebSocket webSocket, Response response) { // 连接建立成功时的回调 } @Override public ...

    易语言websocket支持多线程连接代理协议头操作

    在易语言中,通过集成的WebSocket接口,开发者可以轻松实现ws/wss(不加密和加密的WebSocket)的连接,满足了不同安全需求的应用场景。 其次,代理协议头的操作是WebSocket在特定网络环境下的关键功能。在某些网络...

    A-Simple-Websocket-server:C ++ Webserver。支持http,https,websocket,websocket Secure(WSS)

    websocket Secure(WSS)。 相依性 的openssl Windows10的 步骤执行 克隆项目 安装openssl(需要https和wss) 在Cmakelists中配置openssl路径(需要https和wss) 用openssl生成安全证书 创建你的项目 包括头文件...

    Websocket demo

    在实现WebSocket连接时,URL的前缀会有所不同:http对应ws(WebSocket非加密连接),https对应wss(WebSocket加密连接)。因此,Android应用需要根据服务器的配置选择正确的URL前缀。例如,如果你的WebSocket服务器...

    WebSockect调试工具(Server+Client)

    "ws"是不加密的WebSocket协议,类似于HTTP的"ws://"前缀,而"wss"则是使用SSL/TLS加密的WebSocket,类似于HTTPS的"wss://"前缀,保证了数据传输的安全性。 在调试WebSocket时,首先确保服务器端已正确配置并监听...

    freeswitch平台开启wss使用jssip集成网页电话,使用nginx+https

    本教程将聚焦于如何在Freeswitch平台上启用WSS(WebSocket Secure)并结合JSSIP库来实现网页电话功能,同时利用Nginx服务器与HTTPS协议确保通信的安全性。 首先,Freeswitch是一个开源的VoIP通信平台,它支持多种...

    html页面测试websocket

    为了确保WebSocket连接的安全性,现代浏览器和服务器通常使用WSS(WebSocket over SSL/TLS)协议,提供与HTTPS类似的加密和身份验证机制。此外,由于跨域限制,WebSocket连接也需要服务器端的相应配置,允许来自特定...

    Android 实现WebSocket长连接

    Android 实现WebSocket长连接 ...7、协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。 ———————————————— 原文链接:https://blog.csdn.net/lou_liang/article/details/123879895

    websocket聊天室,学习websocket的好例子。

    5. **安全性**:WebSocket连接可以通过WSS(WebSocket over SSL/TLS)进行加密,提供类似HTTPS的安全性,确保通信内容不被窃听或篡改。 6. **多用户同步**:在一个聊天室环境中,服务器需要处理来自多个客户端的...

    websocket_websocket客户端_websocket_

    6. **安全性**:WebSocket使用`wss`协议提供安全连接,类似于HTTPS的SSL/TLS加密,确保数据在传输过程中不被窃取或篡改。 7. **心跳和关闭**:为了检测连接是否仍然活跃,WebSocket可以使用自定义心跳帧或协议扩展...

Global site tag (gtag.js) - Google Analytics