javascript - 在websockets javascript和golang服务器上工作,尝试发送文件和图像

标签 javascript json go websocket socket.io

从前端javascript websockets发送的json对象就像

message_type: "1"
to: "umesh"
from: "moin"
body: ""
file: "{"filename":"reportesmtp.pdf" 
       ,"fileextension":"application/pdf" ,"filesize":61813 
       ,"filedata":"37,80,6848,52,48,57,....,10,37,37,69,79,70,10"}
       "
message_id: "9"
message_stage_id: "0"

该数据由发送
//javascript
websocket.send(data)  

经过一些修改并在使用golang编写的服务器上收到
//golang
websocket.JSON.Receive(u.Ws, &msg)

以上给err为
err:  unexpected end of JSON input
err:  invalid character ',' after top-level value
err:  invalid character ',' looking for beginning of value

但是可以正常工作,直到文件大小约为35kb。
成功
不使用socket.io。

最佳答案

当文件大于大约35kb时,客户端将对消息进行分段。 golang.org/x/net/websocket软件包does not handle fragmented messages

通过使用golang.org/x/net/websocket documentation中推荐的一种websocket软件包进行修复:

  • github.com/gorilla/websocket
  • nhooyr.io/websocket
  • 关于javascript - 在websockets javascript和golang服务器上工作,尝试发送文件和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61155303/

    相关文章:

    javascript - jquery 这不适用于 settimeout,bug?

    c# - JSonConverter 没有在 C# WebAPI 中触发我的模型的属性

    json - Ruby json 库将 BigDecimal 转换为科学记数法

    go - 如何理解golang文档?

    javascript - 检查客户端是否有 socket.io id 仍然连接

    javascript - AngularJS 获取变量中选定下拉选项的值

    JavaScript : how to push into object's attribute

    json - 如何获得MVC Action 以返回错误状态

    linux - 使用 Go 在 Linux 中以编程方式安全地挂载网络位置

    go - 在golang中发出post请求