Есть ли способ заставить 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
}
});
Я не проверял, работает ли он от клиента к серверу. Ты должен попробовать;)