4

I have trouble to sending data from Android Client to 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?

1 Answer 1

10

You can use Base64 to encode the image:

 public void sendImage(String path) { JSONObject sendData = new JSONObject(); try{ sendData.put("image", encodeImage(path)); socket.emit("message",sendData); }catch(JSONException e){ } } private String encodeImage(String path) { File imagefile = new File(path); FileInputStream fis = null; try{ fis = new FileInputStream(imagefile); }catch(FileNotFoundException e){ e.printStackTrace(); } Bitmap bm = BitmapFactory.decodeStream(fis); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.JPEG,100,baos); byte[] b = baos.toByteArray(); String encImage = Base64.encodeToString(b, Base64.DEFAULT); //Base64.de return encImage; } 

So basically you are sending a string to 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; } 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.