我使用服务器端的Golang和客户端的ReactNative / Node.js来建立应用程序。
我的应用程序的一部分是将视频从客户端上传到服务器并接收视频(最多100Mb)。
由于这是双向谈话,我决定使用Websockets。这允许我仅使用其JWT令牌对用户进行一次身份验证,并保持通信畅通,以便客户端上传视频并接收另一个视频。
现在,我正要在双方上传和下载视频。 到目前为止,所有的通信都在JSON中。视频可以像这样发送:
//After a few messages
{ "type": "sending_file", "sha2": `checksumofthevideo`}
{ "type":"video_chunk", "id": 1, data=`someverylongbytesofdata `}
{ "type":"video_chunk", "id": 2, data=`someverylongbytesofdata `}
{ "type":"video_chunk", "id": 3, data=`someverylongbytesofdata `}
服务器最后将所有字节连接并写入文件,然后验证校验和以确保它是正确的。
我担心这种方法的有效性。我读到我应该使用POST,允许更容易的对话和处理服务器的大文件。
Websockets也很适合在浏览器中使用,但在这种情况下,我在客户端直接使用node.js服务器,所以我猜这会降低websocket的优势。
我很难决定使用哪一个(REST vs Websocket)。 我将不胜感激任何帮助,谢谢!