关于saga+websocket+protobufjs我不得不说的话!

前段时间项目要求需要用saga+websocket+protobufjs,当时对这些还是不是很了解,走了一些弯路,不过最后还算是完成了。

关于整个流程梳理:

  • 进入页面时候,页面dispatch一个消息到saga告诉saga需要连接websocket
  • saga接收到消息,开始进行websocket连接


    image
  • 连接好了之后就可以进行数据传输等了;按照ws的几个操作,onopen、onmessage等等


    image

最重要的就是:数据转化部分

potobuf我们怎样在前端接收解析呢?
  • 安装protobufjs:npm install protobufjs
  • 拿到和后台共同定义的potobuf文件;放在saga文件夹下(我是酱紫放的)


    image
  • 将potobuf文件转化成json或者js;我这里是转化成json应用的
    node pbjs -t json .proto的文件目录 -o 生成的json或者js放置的文件目录(包含文件名)
  • 最后一步就是在onmessage中引用转化过来的json或者js对后端传过来的数据进行解析转化成可用的数据啦
        var jsonDescriptor = require("./msg.json");
        var root = protobuf.Root.fromJSON(jsonDescriptor);
        var messageFile = root.lookupType("Web.Message");
        var buf = new Uint8Array(e.data);
        var message = messageFile.decode(buf);
        console.log(message.classId);

当时写完了之后;发现其实很简单,但是当时由于没有了解用过,并且找相关资料的时候遇到问题;所以当时还是花了一些时间。总结,希望对也是同样情况的有一点帮助啦!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:http://www.ibm.com/developerworks/cn/java/j-lo-WebSo...
    敢梦敢当阅读 8,955评论 0 50
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,791评论 1 45
  • 看到这篇文章build an image gallery using redux saga,觉得写的不错,长短也适...
    smartphp阅读 6,215评论 1 29
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 今天,我写完作业去了姥姥家,去了大棚里,看见门口新盖了房子 ,我和妹妹盖了一下午,里面全是苍蝇,看着就起鸡...
    于一泽妈妈阅读 227评论 0 0