sockjs

tomcat 7下spring 4.x mvc集成websocket以及sockjs完全参考指南(含nginx/https支持)

谁都会走 提交于 2020-04-07 19:26:58
之所以 sockjs 会存在,说得不好听点,就是因为微软是个流氓,现在使用windows 7的系统仍然有近半,而windows 7默认自带的是ie 8,有些会自动更新到ie 9,但是大部分非IT用户其实都不愿意或者不会升级(通常我们做IT的认为很简单的事情,在其他行业的人来看,那就是天书,不要觉得不可能,现实已如此)。 现在言归正传,这里完整的讲下在 spring 4.x 集成sockjs,以及运行在tomcat 7下时的一些额外注意事项。 spring websocket依赖jar: <dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.1</version> <scope>provided</scope> <!-- 注意,scope必须为provided,否则runtime会冲突,如果使用tomcat 8,还需要将TOMCAT_HOME/lib下的javax.websocket-api.jar一并删除 --> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId>

热加载报错

拥有回忆 提交于 2020-03-28 08:19:23
// 1. 生产环境 // --------------------------- // [WDS] Disconnected! // close @ client:172 // eval @ socket.js:26 // EventTarget.dispatchEvent @ sockjs.js:170 // eval @ sockjs.js:970 // setTimeout(异步) // SockJS._close @ sockjs.js:958 // SockJS._transportClose @ sockjs.js:917 // g @ sockjs.js:66 // EventEmitter.emit @ sockjs.js:86 // WebSocketTransport.ws.onclose @ sockjs.js:2976 // VM6125 sockjs.js:1606 GET http://127.0.0.1:8080/sockjs-node/info?t=1584905472090 net::ERR_CONNECTION_REFUSED // 解决 // 1. // node_modules/sockjs-client/dist/sockjs.js 代码的1605行注释 // // self.xhr.send(payload); //

WebSocket原理及技术简介

倖福魔咒の 提交于 2020-02-29 07:44:57
WebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程。其目的是在WebSocket应用和WebSocket服务器进行频繁双向通信时,可以使服务器避免打开多个HTTP连接进行工作来节约资源,提高了工作效率和资源利用率。 1. 引言 互联网发展的早期,网站上只是一些静态展示页面。用户请求(Request)网站页面,网站回复(Response)页面内容给用户浏览器。因为需求简单,所以也没有很复杂的协议过程。这种形式的Request/Response交互流程如下图所示: 图 11 Request/Response 随着互联网技术的发展,带宽逐步提高,用户数也越来越庞大。对互联网的呈现内容提出了要求,随之出现了动态页面技术,对同一个页面,页面的某些部分对不同的访问用户,呈现的内容不同。相关的实现技术有CGI、ASP、PHP、JSP等。由于访问量的增加,WEB服务器同时处理的用户数也达到了万(10K)以上级别,这就是C10K问题:" The C10K problem "[1]。为了缓解服务器压力,每次Request/Response后连接(TCP连接)继续保持,以及对同一个TCP连接,多次复用Request/Response的方法(也称为Pipeline)也提了出来

How to tell when a Stomp server disconnected from the Stomp.JS client

蓝咒 提交于 2020-02-27 23:10:06
问题 I am sending a stomp message over a Sock.JS client. When I disconnect the server I would like a warning message to show up on the client. To do this I have implemented a server side heartbeat... stompClient = Stomp.over(socket); stompClient.heartbeat.outgoing = 20000; stompClient.heartbeat.incoming = 20000; stompClient.connect({}, function(frame) { ... } In the Chrome developer console I see the message... POST http://localhost:8080/hello/800/8n_btbxb/xhr_streaming net::ERR_CONNECTION_RESET

How to tell when a Stomp server disconnected from the Stomp.JS client

一笑奈何 提交于 2020-02-27 23:08:17
问题 I am sending a stomp message over a Sock.JS client. When I disconnect the server I would like a warning message to show up on the client. To do this I have implemented a server side heartbeat... stompClient = Stomp.over(socket); stompClient.heartbeat.outgoing = 20000; stompClient.heartbeat.incoming = 20000; stompClient.connect({}, function(frame) { ... } In the Chrome developer console I see the message... POST http://localhost:8080/hello/800/8n_btbxb/xhr_streaming net::ERR_CONNECTION_RESET

The HTTP response from the server [200] did not permit the HTTP upgrade to WebSocket

拥有回忆 提交于 2020-02-24 13:43:31
问题 I have my websocket client developed in STOMP Java client (Spring project) and server implemented in Spring boot. When the client/server handshake happens, I am getting a connection upgrade issue. Java Client Code List<Transport> transports = new ArrayList<>(1); transports.add(new WebSocketTransport(new StandardWebSocketClient())); SockJsClient sockjsClient = new SockJsClient(transports); WebSocketStompClient stompClient = new WebSocketStompClient(sockjsClient); stompClient

关于sockjs.js?9be2:1606 GET http://****/sockjs-node/info?t=1581148413474 net::ERR_CONNECTI 错误解决方案

与世无争的帅哥 提交于 2020-02-08 18:12:24
关于sockjs.js?9be2:1606 GET http://192.168.1.1:8080/sockjs-node/info?t=1581148413474 net::ERR_CONNECTI错误解决方案 概述: 创建好项目后,用npm run serve运行项目时,运行后console控制台总报sockjs.js?9be2:1606 GET http://192.168.1.110:8080/sockjs-node/info?t=1581148413474 net::ERR_CONNECTI这个错误 分析原因: 因为node-modules中的sockjs-node有问题,它是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。在项目运行以后,network会一直调用这个接口。如果没有使用,那么就一直会报这个异常。 解决方案: 先找到: /node_modules/sockjs-client/dist/sockjs.js 文件 然后打开sockjs.js划到1066行,注释掉: self.xhr.send(payload); 即 try { // self.xhr.send(payload); } catch (e) { self.emit('finish', 0, ''); self.

vue-cli3 一直运行 sockjs-node info t= 解决方案

跟風遠走 提交于 2020-02-07 12:50:13
vue-cli3 一直运行 /sockjs-node/info?t= 解决方案 首先 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。 服务端:sockjs-node( https://github.com/sockjs/sockjs-node ) 客户端:sockjs-clien( https://github.com/sockjs/sockjs-client ) 如果你的项目没有用到 sockjs,vuecli3 运行 npm run serve 之后 network 里面一直调研一个接口: http://localhost:8080/sockjs-node/info?t=1462183700002 作为一个有节操的程序猿,实在不能忍受,特意自己研究了下源码,从根源上关闭这个调用 1. 找到/node_modules/sockjs-client/dist/sockjs.js 2.找到代码的 1605行 try { // self.xhr.send(payload); 把这里注掉 } catch (e) { self.emit('finish', 0, ''); self._cleanup(false); } 3.刷新,搞定。 来源: https://www.cnblogs

Spring 4 AbstractWebSocketMessageBrokerConfigurer With SockJS Not Negotiating Transport Properly

自作多情 提交于 2020-01-22 20:03:06
问题 So I must say that all of the websocket tutorials/examples appear to be so easy, but it seems you really have to dig to find really important pieces of information that are left out of the simple examples. I'm stil having quite a few issues with my webapp using the Spring 4 Stomp message broker with SockJS on the front end. Currently, if I add an endpoint to the StompEndpointRegistry without enabling SockJS(), then declare my socket on the front end using dojo's dojox/socket, Firefox 28 will