Как транслировать изображение с socket.io в Голанг? - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу использовать socket.io для трансляции изображений на Голанге (на стороне сервера).Я уже знаю, как это сделать в Node.js, но понятия не имею с Голангом.Ниже приведены коды: 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') });
   }

Go (не работает):

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 Ответ

0 голосов
/ 19 февраля 2019

Я нашел ответ сам. Объявление структуры данных в GO должно быть:

type data struct {
Image  bool   `json:"image"`
Buffer string `json:"buffer"`}

Тогда это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...