我想使用 socket.io 在 Golang(服务器端)中广播图像。我已经知道如何在 Node.js 中执行此操作,但我不知道如何使用 Golang。代码如下:Node.js(有效):var io = require('socket.io')(http); io.on('connection', function(socket){ fs.readFile(imagepath, (err, buf)=>{ socket.broadcast.emit('image', { image: true, buffer: buf.toString('base64') }); }开始(没用):type data struct { image bool buffer string}server, _ := socketio.NewServer(nil) server.On("connection", func(socket socketio.Socket) { f, _ := os.Open(imagepath) reader := bufio.NewReader(f) content, _ := ioutil.ReadAll(reader) encoded := base64.StdEncoding.EncodeToString(content) socket.Emit("image", data{true, encoded}) })客户端(使用 Node.js 与服务器端一起工作):var img = document.getElementById('img')var socket = io();socket.on('image', function(info) {if(info.image){ img.src = 'data:image/jpeg;base64,' + info.buffer;}});
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
GO 中数据结构的声明应该是:
type data struct {
Image bool `json:"image"`
Buffer string `json:"buffer"`}
然后就可以了!
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消