Hyeonil Jeong Hyeonil Jeong - 1 year ago 250
Android Question

How to send image file(binary data) using socket.io?

I have trouble to sending data from

Android Client
NodeJS Server

I use Socket.IO-client java library in my client.

But, there is not much information for me.

How can i sending binary data from android client to nodejs server?

Answer Source

You can use Base64 to encode the image:

   public void sendImage(String path)
        JSONObject sendData = new JSONObject();
            sendData.put("image", encodeImage(path));
        }catch(JSONException e){

   private String encodeImage(String path)
        File imagefile = new File(path);
        FileInputStream fis = null;
            fis = new FileInputStream(imagefile);
        }catch(FileNotFoundException e){
        Bitmap bm = BitmapFactory.decodeStream(fis);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] b = baos.toByteArray();
        String encImage = Base64.encodeToString(b, Base64.DEFAULT);
        return encImage;


So basically you store a string in node.js

If you want to receive the image just decode in Base64:

private Bitmap decodeImage(String data)
    byte[] b = Base64.decode(data,Base64.DEFAULT);
    Bitmap bmp = BitmapFactory.decodeByteArray(b,0,b.length);
    return bmp;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download