精华内容
下载资源
问答
  • websocket 客户端连接

    千次阅读 2018-05-25 14:38:40
    Websocket是应用层第上的一个应用协议,它必须依赖HTTP 协议进行一次握手,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。轮训和长轮训由于http数据包的头部数据量往往很大(通常有400多个字节),...

    Websocket是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从 TCP 通道传输,与 HTTP 无关了。轮训和长轮训由于http数据包的头部数据量往往很大(通常有400多个字节),但是真正被服务器需要的数据却很少,实时性较差,Websocket的数据传输是frame形式传输的,比如会将一条消息分为几个frame,按照先后顺序传输出去。

    1、使用java代码实现websocket客户端连接到服务端

    (1)引入 javax.websocket-client-api-1.1.jar、tyrus-standalone-client-1.9.jar 两个jar包

    (2)代码编写

    package mywebsocket;
    
    import javax.websocket.ClientEndpoint;
    import javax.websocket.CloseReason;
    import javax.websocket.OnClose;
    import javax.websocket.OnMessage;
    import javax.websocket.OnOpen;
    import javax.websocket.Session;
    import javax.websocket.OnError;
    
    @ClientEndpoint
    public class WebsocketClient
    {
    	Session session = null;
    
    	@OnOpen
    	public void onOpen(Session session)
    	{
    		System.out.println("连接websocket成功执行");
    		this.session = session;
    	}
    
    
    	@OnClose
    	public void onClose(Session session, CloseReason reason)
    	{
    		System.out.println("关闭websocket执行");
    		this.session = null;
    	}
    
    
    	@OnMessage
    	public void onMessage(String message)
    	{
    		System.out.println("接收到服务端发送的信息");
    		System.out.println("接收到的信息为:" + message);
    	   try {
                    session.getBasicRemote().sendText("客户端发送信息给服务端");
               } catch (IOException e) {
               
                    e.printStackTrace();
               }
    	}
    
            @OnError
            public void onError()
            {
                    System.out.println("websocket连接发生异常执行");
            }
    }
    import java.net.URI;
    
    import javax.websocket.ContainerProvider;
    import javax.websocket.Session;
    import javax.websocket.WebSocketContainer;
    
    public class ConnectWebsocket {
    
    	public static void main(String[] args)
    	{
    		boolean result = false;
    		System.out.println("start connection ************************ ");
    		
    		String url = "ws://192.168.1.1:8080/connection/websocket";
    		//如果为ssl协议,则请求中的ws改为wss
    		//String url = "wss://192.168.1.1:8080/connection/websocket";
    		
    		try
    		{
    			WebSocketContainer container = ContainerProvider.getWebSocketContainer();
    
    			Session session = container.connectToServer(WebsocketClient.class, new URI(url));
    			session.getBasicRemote().sendText("发送信息给服务端");
    			result = true;
    		}
    		
    		catch (Exception e)
    		{
    			System.out.println("connect error and the message is " + e.getMessage());
    		}
    		
    		System.out.println("connect result is " + result);
    	
    	}
    	
    }

     

    2、使用JavaScript 实现websocket客户端的连接

     

    (1)引入jquery

    (2)js代码编写

    $(function(){
    	
    	if (!window.WebSocket) {
    		alert("浏览器不支持websocket");
    		return false;
    	}
    	
    	var socket = null;
            
            //调用关闭	

    var url = "ws://192.168.1.1:8080/connection/websocket";//如果为ssl协议,则请求中的ws改为wss//var url = "wss://192.168.1.1:8080/connection/websocket";socket = new WebSocket(url); //建WebSocket对象socket.send("发送信息给服务端"); //调用该方法发送信息给服务端,另外可查看websocket状态: socket.readyStatesocket.onopen = function () {console.log("websocket建立连接时执行")};
            //调用关闭方法,socket.close();socket.onclose = function () {console.log("websocket关闭连接执行")};socket.onmessage = function (e) {var message = e.dataconsole.log("收到服务端的信息,信息为:" + message);socket.send("发送信息给服务端"); };socket.onerror = function () {console.log("websocket连接发生异常执行")}; })

     

    展开全文
  • Http 协议,WebSocket 协议

    千次阅读 2015-09-13 10:29:41
    HTTP一个属于应用的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的HTTP/1.0的六版,HTTP/1.1的...

    一、Http 协议

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
    HTTP协议的主要特点可概括如下:
    1.支持客户/服务器模式。
    2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
    3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。


    由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然而HTTP request 的header是非常长的,里面包含的有用数据可能只是一个很小的值,这样会占用很多的带宽。

    更多关于Http 协议可以参考  :http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

    http://zsxxsz.iteye.com/blog/568250


    二、WebSocket 协议

    在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket 协议中,为我们实现即时服务带来了两大好处:

    1. Header

    互相沟通的Header是很小的-大概只有 2 Bytes

    2. Server Push

    外文名WebSocket

    解    释HTML5一种新的协议

    优    点 服务器可以主动传送数据给客户端

    功    能 实现了浏览器与服务器全双工通信
    三、http和https有什么区别?
    URL前加https://前缀表明是用SSL加密的。 你的电脑与服务器之间收发的信息传输将更加安全。

    Web服务器启用SSL需要获得一个服务器证书并将该证书与要使用SSL的服务器绑定。
    http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的,...

    HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议
    要比http协议安全




    展开全文
  • 网络三篇】 运输 应用 项目系列 揭秘!消息管理平台实现原理 广告系统基础入门 CPS?淘宝客这项技术什么实现的? :ramen:工具使用 三歪给女朋友讲解什么Git 三歪建议 去工作之前 最好学学Git ...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • Java资源包01

    2016-08-31 09:16:25
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包101

    2016-07-13 10:11:08
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包8

    热门讨论 2013-06-28 09:55:26
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包9

    热门讨论 2013-06-28 09:58:55
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • java开源包7

    热门讨论 2013-06-28 09:52:16
    WebSocket4J 一个用 Java 实现的 WebSocket 协议的类库,可使用 Java 来构建交互式 Web 应用。WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 ...
  • Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送一次请求的时候,验证...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     当用户发送一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
  • 用户对 view 的操作(dom 事件)就有十种,此外还有 ajax 获取数据、路由/hash状态变化的记录和跟踪等。 来源丰富不是最可怕的,更可怕的每个来源提供的数据结构并不统一。DOM 事件还好,...
  • 这次有点骚了,破解安卓某 APP 低加密 当你通过 Python 请求网站得到一堆无厘头的 JS 时... Python websocket 爬虫: 哇靠,这些数据疯狂变化,该怎么爬取? Python 分布式爬虫 说说分布式爬虫 我整来了台...
  • 持久扩展 —— 可集成redis、MongoDB等专业缓存中间件 多账号认证体系 —— 比如一个商城项目的user表和admin表分开鉴权 无Cookie模式 —— APP、小程序等前后台分离场景 注解式鉴权 —— 优雅的将鉴权与业务...
  • LAME:LAME高质量MPEG音频(MP3)编码器。 libsndfile:C++封装的C库,用于通过标准库接口读写包含采样声音的文件。 libsoundio:用于跨平台实时音频输入输出的C库。 Maximilian :C++音频和音乐数字信号...
  • python-nameparser:把一个人名分解为个独立的部分。 python-user-agents:浏览器 user agent 解析器。 sqlparse:一个无验证的 SQL 解析器。 特殊文本格式处理 一些用来解析和操作特殊文本格式的库。 通用...

空空如也

空空如也

1 2
收藏数 21
精华内容 8
关键字:

websocket是第几层