前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >websocket实现

websocket实现

作者头像
老雷PHP全栈开发
发布2020-07-02 14:59:18
4670
发布2020-07-02 14:59:18
举报
文章被收录于专栏:老雷PHP全栈开发

我们主要实现私聊和群聊两个功能,要在web端实现想微信QQ那样的即时通讯的功能,我们需要了解一下websocket。

websocket是一种可以双向通讯的长连接协议,http是获取完数据就关闭,websocket则可以一直连接,就像铺了一条管道一样,水可以一直流着。

一、websocket前端

代码语言:javascript
复制
  var ws = new WebSocket("ws://127.0.0.1.com:8282");
  ws.onopen=function(){
    var msg = JSON.stringify({
      type: "login",
      content: "login"
    });
    ws.send(msg);
  }
  
  ws.onmessage = function (e){ 
    console.log(e);
    //服务器发送的内容
    var res = JSON.parse(e.data);
    switch(res.type){
      case "login":
        
        break;
      case "pm":
        
        break;
      case "groupPm":
        
        break;
        
    }
  }
  ws.onerror=function (e){ 
    console.log(e);
  }
  ws.onclose=function (e){ 
    console.log(e);
  }

二、服务端

websocket的实现需要在socket服务上增加websocket握手和消息加解密

客户端发送http请求,带上Sec-WebSocket-Key,

服务端握手 加密key,发送给客户端。

双方能进行交流。

发送接收消息需要进行打包encode 解包decode。

三、常见应用

1.聊天室、群聊 实现类似QQ群的web版本

2.im私聊、客服 实现类似qq聊天,和即时客服交流

3.消息推送 建立即时的web消息推送

代码语言:javascript
复制
  var msg = JSON.stringify({
    type: "login",
    content: "login"
  });
  var msg = JSON.stringify({
    type: "group",
    content: "login",
    gid:123
  });
  
  var msg = JSON.stringify({
    type: "pm",
    content: "login",
    uid:123
  });
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老雷PHP全栈开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档