猿问

如何在 Golang 中使用 socket.io 广播图像?

我想使用 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;}

});


泛舟湖上清波郎朗
浏览 139回答 1
1回答

HUWWW

GO 中数据结构的声明应该是:type data struct {Image  bool   `json:"image"`Buffer string `json:"buffer"`}然后就可以了!
随时随地看视频慕课网APP

相关分类

Go
我要回答