课件和 Demo 地址
https://gitee.com/geektime-geekbang/geek-nodejs
作者回复: photoshop和灵巧的双手
作者回复: 大概可以这么理解。你的昵称头像真牛逼
作者回复: 不用因为没接触过后端而觉得束手束脚。跟前两节课说的一样:rpc和ajax就是差不多的东西,ajax的底层、http1.1的底层也就是半双工通信。你只是在更深入地理解前端技术。
作者回复: 是的。 net模块是对tcp协议的封装,tcp协议本身传输的就是二进制数据。所以这里就用二进制数据了, 虽然http是文本协议,但是它底层是tcp协议,http文本在tcp这一层也是会经历从二进制数据流到文本的转换过程的
作者回复: 因为这是一个和后台协商好的协议,每个字段的类型和占用位数都是要和后台对好的,粗暴地from不一定方便控制这点。 只是为了写代码方便可以用protobuf
作者回复: 多路复用就是在一个通信通路(tcp连接)上多次进行通信,减少建立连接的消耗。所以最好要求通信通路支持全双工通信
作者回复: Javascript有函数上下文这种概念,因此假设你在服务器接收请求的回调函数里执行了其他异步操作,该异步操作的回调函数本身就会“存”请求,因为请求相关的数据会存在于回调函数的上下文里。 该异步操作完成,执行回调函数的时候,回调函数里可以直接获取请求相关的数据并将返回值写入socket。
作者回复: 严格来说,计算机底层传输的时候都是二进制数据。 但只从应用层面理解的话。rpc也可以传文本数据,但是因为压缩率的关系,业界的后端传输一般使用protobuf之类的buffer格式。
作者回复: 实战项目章有这部分内容,Rpc的客户端和服务端都有实现
作者回复: int32就是32个bit也就是4个byte