Есть ли способ заставить Skipper работать с socket.io?

Моя проблема так же проста, как раздражает. Я занимаюсь разработкой приложения Sailsjs и просто хотел бы использовать socket.io для загрузки файла.

Я обычно использую Skipper, который является рекомендуемым обработчиком загрузки Sails, но объект req.file() остается неопределенным (хотя он хорошо работает с http-запросами).

1 ответ

Шкипер на это не способен. По крайней мере, я не могу найти никаких доказательств в документации: https://github.com/balderdashy/skipper

Начиная с sails@0.11.0, поддерживается socket.io v1.2.1, который поддерживает двоичную передачу данных: http://socket.io/blog/introducing-socket-io-1-0/

Вы хотите передать данные с клиента на сервер. Однако большинство примеров, которые вы найдете, - это наоборот, например, /questions/41892776/socketio-nachal-podderzhivat-binarnyij-potok-s-10-est-li-polnyij-primer-spetsialno-dlya-obraza/41892783#41892783:

Сервер отправляет изображение клиенту:

require('socket.io')(3000).on('connection', function(socket){
  require('fs').readFile('image.png', function(err, buf){
    socket.emit('image', { image: true, buffer: buf });
  });
});

Клиент получает изображение:

socket.on("image", function(image, buffer) {
   if(image){
       // do something with image
   }
});

Я не проверял, работает ли он от клиента к серверу. Ты должен попробовать;)

Другие вопросы по тегам