精华内容
下载资源
问答
  • tomcat运行在 5.0+以上版本。发包大小超出范围找到项目...-- websocket 发送内容长度设置(默认8192字节) --> <param-name>org.apache.tomcat.websocket.textBufferSize <param-value>5242800 </context-param>
  • java websocket连接404

    千次阅读 2018-03-14 03:35:42
    1.注意javaee.jar包是否有webSocket相关类,如果有就不用引入这个包了。2.访问路径:ws://ip:端口/项目名/ServerEndpoint设置的...无法连接websocketError during WebSocket handshake: Unexpected response code: 4...

    1.注意javaee.jar包是否有webSocket相关类,如果有就不用引入这个包了。

    2.访问路径:ws://ip:端口/项目名/ServerEndpoint设置的路径。例如:ws://localhost:8088/WebSocket/hello

    3.无法连接websocket

    Error during WebSocket handshake: Unexpected response code: 404

    导致原因: 我使用的是tapache-tomcat-7.0.50,但是跑在jdk1.6.0_33。tomcat7如果要支持websocket,必须跑在jdk7及以上。

    解决方法: 修改tomcat7的runtime属性,跑在jdk7之上

    来自于:http://blog.csdn.net/yeahwell/article/details/41412019

    修改地方:



    4.我的环境:jdk1.8.45  tomcat7

    展开全文
  • Nginx常规的代理转发配置是不支持websocket协议的。 本节主要介绍如何让Nginx代理支持websocket协议。 一、Nginx官网说明 Nginx对websocket协议的支持: http://nginx.org/en/docs/http/websocket.html location /...

    前言

    项目上线后,很多时候都不是直接对后端项目进行请求,而且经过了Nginx代理转发请求。
    Nginx常规的代理转发配置是不支持websocket协议的。
    本节主要介绍如何让Nginx代理支持websocket协议。


    一、Nginx官网说明

    Nginx对websocket协议的支持:
    http://nginx.org/en/docs/http/websocket.html

    location /chat/ {
       
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Con
    展开全文
  • 同样的websocket地址,一台电脑可以建立连接,另一台电脑就无法建立连接,这种情况和电脑开了代理有关,还是有什么其他的问题?
  • java WebsocketClient 客户端 长连接机制

    千次阅读 2019-08-10 18:04:01
    1包:Java-WebSocket-1.3.0.jar 下载地址:https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket 代码: public class WebsocketClient { private static Logger logger = Logger.getLogger...

    1包:Java-WebSocket-1.3.0.jar
    下载地址:https://mvnrepository.com/artifact/org.java-websocket/Java-WebSocket

    代码:

    public class WebsocketClient {
    
    	private static Logger logger = Logger.getLogger(WebsocketClient.class);
    	public static WebSocketClient client;
    	
    	public static void webSocketClient(String ws) throws IOException {
    		
    		try {	
    			client = new WebSocketClient(new URI(ws),new Draft_17()) {
    				@Override
    				public void onOpen(ServerHandshake serverHandshake) {
    					logger.info("握手成功");
    				} 
    
    				@Override
    				public void onMessage(String msg) {
    					logger.info("收到消息==========" + msg);
    				 
    					}
    
    				}
    
    				@Override
    				public void onClose(int i, String s, boolean b) {
    					logger.info("链接已关闭---:"+s);
    				}
    
    				@Override
    				public void onError(Exception e) {
    					e.printStackTrace();
    					logger.info("发生错误已关闭");
    				}
    				
    				 
    			};
    		} catch (URISyntaxException e) {
    			e.printStackTrace();
    		}
    		/*代理 ssl*/
    		String proxyHost = "ynart.aidoon.com";
    		int proxyPort =443;
    		//wss情况下加入此方法	doIFSSL(proxyHost,443);
    		doIFSSL(proxyHost,443);
    		client.connect();
    		logger.info(client.getDraft());
    		int i=0;
    		while (!client.getReadyState().equals(WebSocket.READYSTATE.OPEN)) {
    			try {
    				Thread.sleep(50);
    			} catch (InterruptedException e) {
    				 
    				e.printStackTrace();
    			}
    			i+=1;
    			if(i>100){break;}
    			logger.info("正在连接...");
    		}
     
    		 
    	}
    

    如果是 wss设置:证书设置

    private static void doIFSSL(String ho,int po) throws UnknownHostException, IOException {
    			 
    			  try {
    					SSLContext ssl  = SSLContext.getInstance("TLS");  
    					ssl.init(null, new TrustManager[] { truseAllManager }, null);  
    					 javax.net.ssl.SSLSocketFactory factory = ssl.getSocketFactory();
    					 WebSocketClientFactory wsf=new DefaultSSLWebSocketClientFactory(ssl);
    					client.setWebSocketFactory(wsf);
    //					 
    				} catch (KeyManagementException e) {
    					e.printStackTrace();
    				} catch (NumberFormatException e) {
    					e.printStackTrace();
    				} catch (NoSuchAlgorithmException e) {
    					e.printStackTrace();
    				} 
    		}
    		
    		  
    		  private static TrustManager truseAllManager = new X509TrustManager(){  
    		      
    		      public void checkClientTrusted(  
    		              java.security.cert.X509Certificate[] arg0, String arg1)  
    		              throws CertificateException {  
    		          // TODO Auto-generated method stub  
    		            
    		      }  
    
    		      public void checkServerTrusted(  
    		              java.security.cert.X509Certificate[] arg0, String arg1)  
    		              throws CertificateException {  
    		          // TODO Auto-generated method stub  
    		            
    		      }  
    
    		      public java.security.cert.X509Certificate[] getAcceptedIssuers() {  
    		          // TODO Auto-generated method stub  
    		          return null;  
    		      }  
    		        
    		  };
    

    ///线程自启
    package com.scoket.controller;

    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;

    import org.java_websocket.WebSocketImpl;

    import com.aidoon.lang.handle.HandleResponse;
    import com.aidoon.lang.handle.IHandleResponse;
    import com.aidoon.lang.handle.IHandleResponse.HandleStatus;
    import com.aidoon.os.framework.dal.DALException;
    import com.scoket.beans.SocketStatus;
    import com.scoket.model.WebClientEnum;
    import com.scoket.controller.SocketStatusController;

    public class SocketThread implements Runnable {
    public SocketThread() {

    }
    
    @Override
    public void run() {
    	System.out.println("监听开始------");
    	listenSocekt();
    }
    
    private static boolean flag = false;
    private static boolean netFalse = false;
    
    private static String Ws = "ws://192.168.1.127:88/art/3333";
    

    private static String Url = “http://192.168.1.127:88/art/”;

    public static void listenSocekt() {
    	// netSock 先测网络是否同
    	flag = netSock(Url);
    	if (flag) {
    	//启动枚举
    		WebClientEnum.initClient(Ws);
    	} else {
    		timer1();
    		System.out.println("网络不通");
    	}
    }
    static int i = 1;
    static long cctLast=0;
    public static void timer1() {
    	long ttnow=System.currentTimeMillis();
    	long  xc=ttnow-20*10*1000;//300s 
    	if(cctLast<xc){
    	cctLast=ttnow;
    	// 20秒查看一次是否通
    	System.out.println("-------开启任务--------");
    	final Timer timer = new Timer();
    	timer.schedule(new TimerTask() {
    		 @Override
    		public void run() {
    			flag = netSock(Url);
    			//正在尝试重新连接:
            	 SocketStatusController.statusLianjie(4);
    			if(!flag){
    				if (i++ == 20) { //20* 5=200s 
    		            timer.cancel();
    		            //连接失败:
    		        	 SocketStatusController.statusLianjie(3);
    		             System.out.println("#### 程序结束 ####");
    		        }
    				System.out.println("网络has还是不通,继续连接");	
    			}
    			if (flag) {
    				netFalse=true;
    				System.out.println("网络---通");
    				WebClientEnum.initClient(Ws);
    				timer.cancel();
    			}
    		}
    	}, 1000 * 10);// 设定指定的时间time,此处为5秒
    }
    

    }

    public static boolean netSock(String urls) {
    	try {
    		URL url = new URL(urls);
    		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    		/**
    		 * public int getResponseCode()throws IOException 从 HTTP 响应消息获取状态码。
    		 * 例如,就以下状态行来说: HTTP/1.0 200 OK HTTP/1.0 401 Unauthorized 将分别返回 200
    		 * 和 401。 如果无法从响应中识别任何代码(即响应不是有效的 HTTP),则返回 -1。
    		 * 
    		 * 返回 HTTP 状态码或 -1
    		 */
    		int state = conn.getResponseCode();
    		System.out.println(state);
    		if (state == 200) {
    			return true;
    		} else {
    			return false;
    		}
    	} catch (IOException e) {
    		return false;
    	}
    }
    
    
    
    public static void main(String[] args) throws IOException {
    	WebSocketImpl.DEBUG = true;
    	listenSocekt();
    }
    

    }
    WebClientEnum.initClient(Ws);
    package com.scoket.model;

    import java.io.IOException;

    import org.java_websocket.client.WebSocketClient;

    import com.scoket.controller.MyWebsocketClient;
    import com.scoket.handles.SocketConnectHandle;

    public enum WebClientEnum {
    CLIENT;

    public static WebSocketClient socketclient=null;
    
    public static void initClient(String ws) {
    	try {
    		socketclient=MyWebsocketClient.myWebSocketClient(ws);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    	System.out.println("----------socketclient--"+socketclient);
    	if(socketclient!=null){
    		int reno =SocketConnectHandle.socketConnect(socketclient);
    	}
    }
    

    }

    展开全文
  • 服务器—JavaWeb/WebSocket项目连接不上服务器的可能原因   如果将一个JavaWeb项目部署到服务器上,或是一个Spring项目或WebSocket项目打成jar包部署到服务器上,都会出现与服务器连接不上的情形,这是需要保持...

    服务器—JavaWeb/WebSocket项目连接不上服务器的可能原因

      如果将一个JavaWeb项目部署到服务器上,或是一个Spring项目或WebSocket项目打成jar包部署到服务器上,都会出现与服务器连接不上的情形,这是需要保持镇定,从以下几个方向检查自己的代码及配置。

      1、在服务器中使用:netstat -nltp 端口号,查看自定义端口是否被监听。(对于jar文件来说,就是看有没有使用"nohup java -jar xxx.jar &"后台运行.jar文件)

      2、在windows命令行中使用:ping 服务器ip地址,查看对应ip地址是否能访问,看服务器是否正常工作。

      3、查看阿里云是否开启该端口所对应的防火墙,阿里云服务器除了默认哪几个端口的防火墙,其他端口的防火墙需要手动开启。

    在这里插入图片描述

    展开全文
  • 应用如果启动websocket server后,Tomcat和Apache都需要相应的配置支持 1. 首先Apache需要配置代理服务 在Httpd.conf中加入下面一行
  • java WebSocket客户端断线重连 | 实用代码框架

    万次阅读 多人点赞 2021-10-25 17:44:06
    在工作中是否会遇到实用websocket客户端连接服务端的时候,网络波动,服务端断连的情况。会导致客户端被动断开连接。为了解决这个问题,需要对被动断开连接的情况进行捕获,并重新创建连接。这篇文章主要是提供可以...
  • 客户端连接WebSocket服务器时连接失败会出现的一些问题及解决方案
  • 这个Demo是通过NioSession实现的,Tomcat自带的websockt使用手机端连接会经常链接不上,这个Demo非常有效解决了手机端连接不上websocket的bug。demo是SE项目,执行main启动服务器后,web端通过ws的方式连接即可,...
  • java websocket断开重连

    千次阅读 2018-11-04 11:29:09
    需要保证连接断开自动重连,于是基于Java-WebSocket这个开源代码实现了断开重连,代码比较简单,如下,还在完善中。。。首先需要注意的是为了防止重试给远端的websocket 站点带来过大的压力,我们需要设计一个规则,...
  • Java实现Websocket客户端,去连接另外一个websocket服务器。 线下测试是可以的。 客户端在tomcat服务器下面 服务端在另外一个tomcat服务器下面 线上无法连接 多了一个ngnix的反向代理 客户端和服务端都在这...
  • websocket连接不成功的原因

    千次阅读 2020-03-25 14:23:00
    整合websocket和RabbitMQ时,需要使用tomcat9.0版本,自己当时用的tomcat版本是7.0,一直连接不成功,切换tomcat9.0之后,ok了。
  • 项目部署到iis上以后,外网访问可以登录成功,但websocket连接失败,局域网访问时,websocket能连接成功接收数据包。本机固定ip:192.1.1.102 联通拉的专线固定ip: 25.1.1.1;路由器端设置分配给本机的固定ip:192.1....
  • Java WebSocket 基础 消息通信

    千次阅读 2019-08-07 20:36:41
    为了发送WebSocket消息,无论注解式端点还是编程式端点,其API都是相同的:...Ping和Pong消息通常被开发人员用来检查WebSocket底层连接的健康性。 从Session对象获得的RemoteEndpoint实例提供方法: public ...
  • websocket连接activemq指定连接名 如果使用浏览器连接activemq,那么大家会用到websocket技术以及stomp协议,具体的连接操作以及各种详细解释,在下面的网站中,是stomp协议的官方介绍。 链接:github上的官方文档 ...
  • java websocket后台 WebSocket在网上的例子也不少,学习的时候也可以参照其他博文。重复的部分就不再强调了,直接上代码。 WebSocketServer.java这个文件就是websocket的后台监听系统,前端向后台发送数据的时候通过...
  • 很久以前就在自己的服务上部署了websocket,现在有一个新接收的项目也要加上websocket,直接把代码复制过去,发现连不上。 处理过程 1.创建一个websocketserver,并加上@serverEndPoint注解。 package ...
  • websocket连接失败不知道是什么原因,因为第一次接触这个技术还请见谅 报错说找不到,这是我的js代码 一开始想的是url是不是有问题我就把url加了模块的路径,还是报错了,加不加模块都报错了,于是百度,说可能被...
  • java WebSocketClient 客户端 重连

    千次阅读 2020-04-28 14:38:33
    import org.java_websocket.WebSocket; import org.java_websocket.enums.ReadyState; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import...
  • 前端----------------------------------- @[ Java后端WebSocket的...关闭WebSocket连接 TOC](这里写自定义目录标题) 后台-------------------------------------- import java.io.IOException; import j...
  • webSocket无法连接

    千次阅读 2020-09-14 10:33:09
    原因:由于端口号被占用! 把端口号换一个就ok了.。。。
  • import javax.websocket.OnClose; import javax.websocket.OnError; import javax.websocket.OnMessage; import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server....
  • java实现websocket server/client

    千次阅读 2019-08-08 18:44:07
    最近在项目中有一个场景,在内网的...2.内网应用与外网应用之间建立websocket连接 记录一下websocket server/client的java实现 一、websocket server @Configuration public class WebSocketConfig extends...
  • Android WebSocket连接不成功

    千次阅读 2017-05-24 15:45:27
    onFailurejavax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
  • WebSocket连接404(一种情况)

    万次阅读 2019-05-14 10:31:52
    上一种情况,我使用的是SSM框架,后来想用Spring Boot来尝试一下,结果发现按照原来的写法无法连接。如果你使用的是Spring Boot请检查如下配置 声明将@ServerEndPoint的注解交由Spring管理 package com.yunx...
  • 什么是 WebSocket?   随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的...
  • java WebSocket服务端和客户端实现

    千次阅读 2017-03-18 14:11:01
    最近接到老大指示,研究下WebSocket是个神马东东,接到指示后疯狂百度,四天下来把网上的demo试了N次,但没一次成功,还买了一本入门的书,按书上的第一个demo,最后的结果是,tomcat运行正常,但是ws访问一直失败。...
  • nginx处理websocket连接

    2020-12-11 16:09:17
    最近开发的时候需要用到websocket向前端推送消息,本地测试正常(ip+端口的方式),但是部署到测试服务器上之后连接失败。 测试环境是使用nginx作为代理,并没有配置关于websocket的地方。 需要在nginx配置文件中添加...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,812
精华内容 3,124
关键字:

javawebsocket连接失败

java 订阅