问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

h5 socket 和web socket 的区别

发布网友 发布时间:2022-04-24 17:34

我来回答

2个回答

懂视网 时间:2022-05-12 07:27

什么是 WebSocket

WebSocket的服务端和客户端可以双向进行通讯,并且允许跨域通讯。由HTTP/1.1Upgrade机制支持,通过ws(非加密)或wss(加密)协议进行通讯

WebSocket WebSocket(
 in DOMString url,
 in optional DOMString protocols
);

WebSocket WebSocket(
 in DOMString url,
 in optional DOMString[] protocols
);

HTML5 中的 WebSocket

HTML5只专注于客户端的API, 而服务器端是各个语言自己去实现

// 创建一个Socket实例
var socket = new WebSocket('ws://localhost:8080');
// 打开Socket 
socket.onopen = function(event){
 // 发送一个初始化消息
 socket.send('I am the client and I'm listening!');
 // 监听消息
 socket.onmessage = function(event){
 console.log('Client received a message',event);
 };
 // 监听Socket的关闭
 socket.onclose = function(event){
 console.log('Client notified socket has closed',event);
 };
 // 关闭Socket.... 
 //socket.close()
};

事件
onclose onerror onmessage onopen

属性

  • readyState: CONNECTING 0 OPEN 1 CLOSING 2 CLOSED 3

  • binaryType: String Blob ArrayBuffer

  • 兼容性

    方法1:
    如果客户端不支持WebSocket, 那么可以使用几个候选选项 Flash Socket AJAX long-polling AJAX multipart streaming IFrame JSONP polling

    方法2
    使用Socket.io来抹平差异,该库可以在浏览器不支持WebSocket的时候, 自动用浏览器支持的消息推送方式进行连接, 该库还会检测连接是否掉线,并在掉线时自动为你重新连接。

    // 创建Socket.IO实例,建立连接
    var socket= new io.Socket('localhost',{
     port: 8080,
    });
    socket.connect();
    // 添加一个连接监听器
    socket.on('connect',function(){
     console.log('Client has connected to the server!');
    });
    // 添加一个连接监听器
    socket.on('message',function(data){
     console.log('Received a message from the server!',data);
    });
    // 添加一个关闭连接的监听器
    socket.on('disconnect',function(){
     console.log('The client has disconnected!');
    });
    // 通过Socket发送一条消息到服务器
    function sendMessageToServer(message){
     socket.send(message);
    }

    优势

  • 实时双向通信

  • 浏览器本地支持良好(兼容性可以用第三方库很好解决)

  • 支持自定义协议

  • 实际应用

  • 聊天室

  • 服务器消息推送

  • 前后端实时系统

  • 参考

  • Websocket | MDN

  • 认识HTML5的WebSocket

  • 【相关推荐】

    1. 免费h5在线视频教程

    2. HTML5 完整版手册

    3. php.cn原创html5视频教程

    热心网友 时间:2022-05-12 04:35

    socket.io封装了websocket,同时包含了其它的连接方式,比如Ajax。原因在于不是所有的浏览器都支持websocket,通过socket.io的封装,你不用关心里面用了什么连接方式。
    你在任何浏览器里都可以使用socket.io来建立异步的连接。socket.io包含了服务端和客户端的库,如果在浏览器中使用了socket.io的js,服务端也必须同样适用。如果你很清楚你需要的就是websocket,那可以直接使用websocket
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 《少年包青天》(周杰版)片尾曲叫什么名字?歌词? 我一直不懂websocket socket xmpp之间什么区别,哪位能讲一下么 93版包青天的片尾曲叫什么名字? 高级会计考试科目及时间 电脑蓝屏 蓝屏代码0xA000001 怎样解决!!! 东南汽车dx7怎样去除保养检修 东南DX7保养灯图标如何清零? 东南DX7保养灯怎么消 东南dx7保养灯归零怎么操作 东南dx7保养灯怎么复位,东南dx7保养灯归零 汽车保养提示灯保养后要怎么消除 东南dx7保养灯清零 东南dx7保养灯怎样归零 华为手机删除照片怎么恢复 东南DX7怎么自己清保养码? 东南汽车dx7怎样去除保养检修的? dx7保养灯怎么消除 东南DX7刚刚保养完仪表盘上出显扳手呢?怎么消除 东南dx7保养灯归零怎么操作? 东南DX7保养提示灯如何消除呢? 〔包青天七侠五义〕片尾曲叫什么? 新包青天的片头曲和片尾曲的名字是什么啊 包青天 (旧版) (金超群 范鸿轩 何家劲等)主题曲和片尾曲是什么名字? 何家劲版《包青天》所有片尾曲是什歌 少年包青天的片尾曲是什么? 包青天之风云再起片尾曲叫啥 有人能说说 node.js net.socket 和 socket.io 的区别在哪吗 少年包青天片尾曲叫什么 《少年包青天》的片头曲和片尾曲叫什么名字啊? 少年包青天中的片尾曲叫什么名字?就是''头上一片青天.....'' 以前那个电视剧 包青天 的主题曲叫什么名? 邓超演的包青天的片尾曲是啥 谋事App里面介绍的项目咋样? 社群营销APP方ơ 植物神经紊乱应该如何调理? 有没有其他像五亿探长雷洛传和跛豪类的香港60年代这些片??、【只求名字】 植物神经紊乱该如何缓解? 互联网运营工作的内容有哪些? 请问在电影《五亿探长雷洛传2》中,刘德华与邱淑贞唱的粤剧叫什么? 怎样调理神经系统?