精华内容
下载资源
问答
  • websocket

    千次阅读 2019-08-08 08:21:59
  • WebSocket

    千次阅读 2015-08-03 17:25:24
    WebSocket的主要作用是,允许服务器端与客户端进行全双工(full-duplex)的通信。举例来说,HTTP协议有点像发电子邮件,发出后必须等待对方回信;WebSocket则是像打电话,服务器端和客户端可以同时向对方发送数据,...

    一、概述

    HTTP协议是一种无状态协议,服务器端本身不具有识别客户端的能力,必须借助外部机制,比如session和cookie,才能与特定客户端保持对话。

    WebSocket的主要作用是,允许服务器端与客户端进行全双工(full-duplex)的通信。举例来说,HTTP协议有点像发电子邮件,发出后必须等待对方回信;WebSocket则是像打电话,服务器端和客户端可以同时向对方发送数据,它们之间存着一条持续打开的数据通道。

    WebSocket协议完全可以取代Ajax方法,用来向服务器端发送文本和二进制数据,而且还没有“同域限制”。
    WebSocket不使用HTTP协议,而是使用自己的协议。WebSocket与http协议一样都是基于TCP的,属于应用层的协议,所以他们都是可靠的协议。WebSocket在建立握手连接时,数据是通过http协议传输的,但是在建立连接之后,真正的数据传输阶段是不需要http协议参与的。

    请求:
    GET / HTTP/1.1
    Connection: Upgrade		//表示浏览器通知服务器,如果可以,就升级到webSocket协议
    Upgrade: websocket 		//表示将通信协议从HTTP/1.1转向该项所指定的协议
    Host: example.com
    Origin: null			//验证浏览器域名是否在服务器许可的范围内
    Sec-WebSocket-Key: sN9cRrP/n9NdMgdcy2VJFQ==	//握手协议的密钥,是base64编码的16字节随机字符串
    Sec-WebSocket-Version: 13
    响应:
    HTTP/1.1 101 Switching Protocols
    Connection: Upgrade
    Upgrade: websocket
    Sec-WebSocket-Accept: fFBooB7FAkLlXgRSz0BT3v4hq5s=
    Sec-WebSocket-Origin: null
    Sec-WebSocket-Location: ws://example.com/	//表示进行通信的WebSocket网址
    注意:WebSocket协议用ws表示。此外,还有wss协议,表示加密的WebSocket协议,对应HTTPS协议。

    二、客户端

    1. 建立连接和断开连接、发送数据和接收数据、处理错误。
    2. WebSocket实例对象有一个readyState属性,表示目前的状态,可取4个值:
    【0:正在连接;1:连接成功;2:正在关闭;3:连接关闭】
    3. 客户端建立WebSocket流程:
    (0)检测浏览器是否支持WebSocket
    (1)握手协议成功以后,readyState就从0变为1,并触发open事件
    (2)关闭WebSocket连接,会触发close事件
    (3)客户端收到服务器发送的数据,会触发message事件
    (4)连接建立后,客户端通过send方法向服务器端发送数据
    if(window.WebSocket != undefined) {
    	var ws = new WebSocket("ws://localhost:10010");
    	ws.onopen = function(){
    		console.log("Opened!");
    		ws.send("I'm client,call server!!!");
    	};
    	ws.onclose = function(){
    		console.log("over!!!");
    	};
    	ws.onmessage = function(event){
    		console.log(event.data);
    	};
    	ws.onerror = function(error){
    		console.log("Error: "+ err);
    	}
    }

    三、服务器端

    使用ws(https://www.npmjs.com/package/ws)模块部署简单的服务器。
    var WebSocketServer = require('ws').Server;
    var wss = new WebSocketServer({port: 10010});
    wss.on('connection', function(conn) {
        //console.log(conn);
        conn.on('message', function(message) {
            console.log('received: %s', message);
            conn.send("I'm server,received your infomation!!!");
        });
    });
    [转载请标明出处: http://blog.csdn.net/ligang2585116]

    展开全文
  • websocket客户端,内含代码,可改IP地址
  • WebSocket实例

    2018-01-04 10:08:57
    WebSocket实例!WebSocket实例!WebSocket实例!WebSocket实例!
  • websocket_websocket客户端_客户端和服务器通信_websocket_websocket客户端.zip
  • WebSocket解析

    千次阅读 2019-10-21 15:56:39
    websocket

    1 websocket请求信息

    辅助阅读:http,https协议解析
    WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议.

    • 特点
      (1) 持久化协议,一次连接,永久双向数据传输;
      (2) 允许服务端向客户端推送消息;
    • 请求过程

    在这里插入图片描述

    图1 websocket通信过程

    1.0 Chrome浏览器

    1.0.1 请求行

    Request URL: ws://192.168.0.168:8080/ssmPureBackend/websocket
    Request Method: GET
    Status Code: 101 
    

    1.0.2 请求头

    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9
    Cache-Control: no-cache
    Connection: Upgrade
    Cookie: JSESSIONID=2CD38E02A17480FB9D3936E3142B3E75; SL_G_WPT_TO=es; SL_GWPT_Show_Hide_tmp=1; SL_wptGlobTipTmp=1
    Host: 192.168.0.168:8080
    Origin: http://192.168.0.168:8080
    Pragma: no-cache
    Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
    Sec-WebSocket-Key: e/WgsMWJAcEPgKF6VTkgog==
    Sec-WebSocket-Version: 13
    Upgrade: websocket
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
    

    1.0.3 响应头

    Connection: upgrade
    Date: Mon, 21 Oct 2019 08:11:47 GMT
    Sec-WebSocket-Accept: otlvloQe+fDU/NebnadKNaXRKgg=
    Sec-WebSocket-Extensions: permessage-deflate;client_max_window_bits=15
    Upgrade: websocket
    

    1.2 Firefox

    1.2.1 请求行

    请求网址:http://192.168.0.168:8080/ssmPureBackend/websocket
    请求方法:GET
    远程地址:192.168.0.168:8080
    状态码:
    101
    版本:HTTP/1.1
    

    1.2.2 请求头

    Host: 192.168.0.168:8080
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
    Accept: */*
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Sec-WebSocket-Version: 13
    Origin: http://192.168.0.168:8080
    Sec-WebSocket-Extensions: permessage-deflate
    Sec-WebSocket-Key: YqYRkKCLOR+enVOjEulklQ==
    Connection: keep-alive, Upgrade
    Cookie: JSESSIONID=14C19120808C5641C8D548288798759F
    Pragma: no-cache
    Cache-Control: no-cache
    Upgrade: websocke
    

    1.2.3 响应头

    HTTP/1.1 101 
    Upgrade: websocket
    Connection: upgrade
    Sec-WebSocket-Accept: ApXjIqAFgR/ESfHy48GEn3ehoRo=
    Sec-WebSocket-Extensions: permessage-deflate
    Date: Mon, 21 Oct 2019 08:31:03 GMT
    

    2 websocket内容

    2.1 请求头

    websocket请求头中,三个websocket请求信息

    序号标志描述
    1Sec-WebSocket-Extensions扩展信息
    2Sec-WebSocket-Key浏览器验证是否为websocket请求.数据由浏览器随机生成,服务器利用该数据,使用SHA-1生成摘要,之后进行base64编码,将结果返回到Sec-WebSocket-Accept
    3Sec-WebSocket-Version协议版本
    4Connection客户端希望升级连接协议

    2.2 响应头

    序号标志描述
    1Sec-WebSocket-Extensions扩展信息
    2Sec-WebSocket-Accept服务器返回浏览器传输的key对应的摘要编码
    3Sec-WebSocket-Version客户端支持的websocket协议版本,RFC6455要求使用的版本为13
    4HTTP/1.1 101协议转换
    5Upgrade升级为websocket通信
    6Connection客户端升级连接协议

    3 websocket消息推送

    3.1 消息推送

    • send()客户端向服务端发送数据,服务端推送消息给其他客户端
    • close()关闭websocket连接

    3.2 监听函数

    • onopen建立ws连接时触发该事件
    • onerror网络连接异常时,触发事件
    • onclose当ws关闭时,触发事件
    • onmessage当ws接收到服务器推送消息时,触发

    3.3 请求方式

    websocket请求:ws协议
    websocket+ssl:wss协议


    【参考文献】
    [1]https://www.cnblogs.com/zihe/p/8334029.html
    [2]https://www.runoob.com/html/html5-websocket.html
    [3]https://www.cnblogs.com/best/p/5695570.html

    展开全文
  • websocket_for_linux-master_websocket_websocket客户端_WEBSOCKET单片机实现.zip
  • WebSocket WebSocket的简单用法 WebSocket的使用

    
    

                               WebSocket的使用

    WebSocket一般用于局域网络的通讯使用,他比socket好用,原理也就是socket的封装,对使用者来说,比用socket更方便,快捷。


    1 自定义自己的WebSocket,继承WebSocketClient,上代码:

    public class WebSocketServlet extends WebSocketClient  {
    private Context mContext;
    
    public WebSocketServlet(URI serverURI,Context mContext) {
    super(serverURI);
    this.mContext=mContext;
    }
    
    
    @Override
    public void onClose(int arg0, String arg1, boolean arg2) {
    // TODO Auto-generated method stub
    Log.e("TestWebSocketServlet", "onClose: "+arg1);
    
    }
    
    
    @Override
    public void onError(Exception arg0) {
    // TODO Auto-generated method stub
    Log.e("TestWebSocketServlet", "onError: "+arg0.toString());
    }
    
    
    @Override
    public void onMessage(String arg0) {
    // TODO Auto-generated method stub
    Log.e("TestWebSocketServlet", "onMessage: "+arg0);
    
    Intent intent = new Intent();  
                    intent.setAction("com.xiazdong");  
                    intent.putExtra("name", arg0);  
                    mContext.sendBroadcast(intent);  
    
    }
    
    
    @Override
    public void onOpen(ServerHandshake arg0) {
    // TODO Auto-generated method stub
    Log.e("TestWebSocketServlet", "onOpen");
    }
    
    
    @Override
    public void onFragment(Framedata fragment) {
    // TODO Auto-generated method stub
    super.onFragment(fragment);
    Log.e("onFragment", "received fragment: " + new String( fragment.getPayloadData().array() ) );  
    }
    }



    2 自己定义一个Service,在Service里面打开WebSocket,上代码

    <span style="font-size:18px;">public class MTWebSocketServlet extends Service {
    private String urlString = "ws://11.95.0.223:2016";
            private Context mContext;
    @Override
    public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
    }
    
    
    @Override
    public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
                    mContext=MTWebSocketServlet.this;
                    Log.e("MTWebSocketServlet", "on MTWebSocketServlet 启动了");
    new Thread(new Runnable() {
    @Override
    public void run() {
    // TODO Auto-generated method stub
    WebSocketServlet servlet;
    try {
    servlet = new WebSocketServlet(new URI(urlString),mContext);
    servlet.connectBlocking();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }).start();
    
    
    }
    
    
    }</span>



    以上就是核心代码了,你的websocket就写好了!

    展开全文
  • websocket实例

    2016-08-19 11:01:17
    websocket push实例,websocket server,websocket client,websocket push servlet
  • websocket 爬虫

    千次阅读 2018-08-08 13:05:28
    有些网站为了追求数据的实时更新,很多时候会采用 websocket 的方式,例如股票交易数据、数据货币交易平台等。关于websocket的机制,网上不乏相关资料。但关于websocket的爬虫文章,还是比较少的。所以特地写此文章...
  • SpringBoot2.0集成WebSocket,实现后台向前端推送信息

    万次阅读 多人点赞 2018-05-10 22:54:29
    什么是WebSocket? - 初次接触 WebSocket 的人,都会问同样的问题:我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处? - 答案很简单,因为 HTTP 协议有一个缺陷:***通信只能由客户端发起***,...
  • websocket_websocket客户端_客户端和服务器通信_websocket_websocket客户端_源码.zip
  • WebSocket Protocol

    2018-01-03 14:09:28
    rfc6455,websocket协议标准,对于学习websocket有很大的帮助
  • websocket在线测试网站

    万次阅读 2016-09-05 22:02:39
    http://www.blue-zero.com/WebSocket/
  • websocket使用

    万次阅读 热门讨论 2016-04-05 21:10:08
    websocket,html5中新一代全双工通信协议。其底层仍然是http协议。 ... WebSocket 请求响应客户端服务器交互图 WebSocket 客户端支持 浏览器 支持情况 Chrome Chrome version 4+支持 Firefox
  • websocket video

    2012-11-26 22:32:38
    基于websocket数据处理 websocket开发
  • C# webSocket

    2018-01-19 15:25:17
    WebSocket协议是基于TCP的一种新的网络协议,WebSocket通信协议于2011年被IETF定为标准RFC 6455,并被RFC7936所补充规范。
  • WebSocket Client连接远程WebSocket Server

    千次阅读 2017-10-25 20:30:17
    在这篇文章中,简单介绍了WebSocket的使用,客户端可以使用了JavaScript向服务发送请求,服务端也可以通过SimpMessagingTemplate 主动向客户端推送消息,实现服务器端与客户端的双向交互。 下面介绍客户端如何连接...
  • ios 实现websocket和h5 websocket通讯,实现双向联通。
  • android webSocket

    2016-01-20 11:41:30
    android 端webSocket 实现即时通信
  • Tomcat WebSocket

    2016-06-05 16:48:03
    Tomcat利用webSocket建立常连接 jar包
  • unity WebSocket

    2018-07-13 18:59:17
    WebSocket Unity 和后端交互 实现类似 Socket 的双向交互 欢迎拿去琢磨 修改Url 就可用
  • c语言 websocket

    2018-01-26 09:51:11
    基于moongoose 轻量级server c语言实现的websocket ,可移植性很强
  • websocket例子

    2016-04-18 21:22:36
    tomcat下部署,websocket技术+ext实现界面交互.
  • WebSocket Demo

    热门讨论 2014-05-19 15:26:43
    WebSocket客户端及服务度使用Demo
  • Android虚拟设备访问WebSocket问题

    千次阅读 2014-11-20 18:18:24
    Android虚拟设备访问WebSocket问题最近写erlang的WebSocket网站,需要运行在RHEL6上,用Android设备访问。可惜AVD无法访问主机 Win7上的虚拟机(RHEL6)上的站点,只能访问主机本身(使用10.0.2.2这个IP)上的站点或WWW...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,794
精华内容 61,517
关键字:

websocket网站