小编Leo*_*lli的帖子

通过 WebRTC 数据通道实现 WebService 是否可能且合理?

是否可以通过 WebRTC 数据通道实现 WebService?

这个想法是:

  • 客户端向服务器发出一个 https 请求以进行信令和会话建立
  • 客户端和服务器开始通过WebRTC DataChannel进行双向通信

好处?:

  • 表现 ?
  • 请求通过一个连接,并且该标准允许通过同一连接(端口)使用多个数据通道
  • 灵活的组网拓扑
  • UDP协议
  • 端到端加密
  • 服务器可以通过同一连接发送事件
  • 负载平衡可以从服务器池客户端实现,无需负载平衡器,或者各种不同的解决方案。
  • 目前正在讨论向 Workers/Service Workers/ 等添加 DataChannels https://github.com/w3c/webrtc-extensions/issues/64

缺点:

  • 用于实现请求分段和缓冲区限制控制的应用程序特定代码
  • [编辑 3] 我不知道它与 HTTP/2 Stream 在性能和 cpu/内存使用方面有多大差异

想法:

  • 客户端可以是用于同步的数据的读取副本,也可以是公共IPFS网络中适合orbit-db https://github.com/orbitdb/orbit-db的任何其他应用程序,使用orbit-db的好处是只允许所有者进行写入,然后服务器还可以用他的密钥对所有数据进行签名,以便客户端可以验证并信任它来自服务器,这可以卸载主服务器进行读取,这只是一个想法。

[编辑]

我发现这个仓库: https: //github.com/jsmouret/grpc-over-webrtc 太棒了!

[编辑2]

经过一番调查后,改变了 Orbit-db 的想法并删除了集群 IPFS

[编辑3]

在搜索 Fetch PROS for HTTP/2 后,我发现使用 ReadableStreams 获取上传流,我不知道通过 WebRTC DataChannel 或 HTTP/2 Stream 运行 GRPC (bidi) 有多大区别

https://www.chromestatus.com/feature/5274139738767360#:~:text=Fetch%20upload%20streaming%20lets%20web,things%20involved%20with%20network%20requests)。

非常酷的视频解释了该功能:https://www.youtube.com/watch?v =G9PpImUEeUA

javascript networking web-services network-programming webrtc

5
推荐指数
1
解决办法
1292
查看次数

GoLang Int24至Int32

嗨,大家好,我在GoLang中编写了此函数,将24位整数(3字节)转换为32位整数(4字节)

func int24ToInt32(bytes []byte) uint32 {
    return binary.BigEndian.Uint32(append([]byte{0x00}, bytes...))
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是解决问题的不好方法。也许有人可以指导我寻求更好,更有效的解决方案

byte bit go

-2
推荐指数
1
解决办法
650
查看次数