Socket.io android java client de la réception de messages et l'envoi de fichier exemple
Quelqu'un at-il un exemple de code qui illustre la réception de messages sur le java côté client pour la socket.io?
Aussi, est-il un exemple pour l'envoi d'un fichier/binaire/photo à partir de la même prise.io client java? (en gros un exemple de code à partir de java au lieu de javascript client)
La version d'android java client peut être acquis ici (cette version de prétendre qu'il peut être utilisé avec la prise.io 1.0 et les versions ultérieures) (qui semble être la dernière version mise à jour)
https://github.com/nkzawa/socket.io-client.java
Actuellement l'exemple de code qui ne m'autorise qu'à initialiser une connexion, le serveur est en mesure d'obtenir ma connexion entrante de l'événement et la java socket.io client est capable d'envoyer une base émettre de message. Cependant, il n'y a pas de plaine exemples simples sur la façon d'obtenir un message de mise à jour à partir d'un serveur de diffusion ou émet à partir d'un autre utilisateur du site.
Exemple de code juste pour la référence:
package com.sample.d10132014a;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URISyntaxException;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import com.github.nkzawa.socketio.client.*; //java socket io client
import com.github.nkzawa.socketio.client.Socket;
import com.github.nkzawa.emitter.Emitter;
import com.github.nkzawa.engineio.client.*; //java engine io client
import com.github.nkzawa.engineio.client.transports.*;
public class MainActivity extends Activity {
public static String internalPath; //internal storage path
public static String fileName; //the file name
private Socket socket; //socket object
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try
{
socket = IO.socket("http://YOURSERVERIP:3000");
socket.connect(); //initiate connection to socket server
socket.emit("chat message", "From Android to server: 1st outgoing message");
}
catch (URISyntaxException e)
{
e.printStackTrace();
}
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener()
{
@Override
public void call(Object... args) {
Log.d("socketio", "socket connected");
socket.emit("chat message", "even connect: message sent from android to socketio server");
//socket.disconnect(); //why is there a disconnect here?
}
}).on("chat message", new Emitter.Listener() {
@Override
public void call(Object... arg0) {
//TODO Auto-generated method stub
JSONObject obj = (JSONObject)arg0[0];
Log.d("socketio", "message back: "+obj.toString());
Log.d("socketio", "incomming chat message: " + obj.toString() + arg0 + arg0[0] + arg0[1]); //trying to test which variable holds the message
}
}).on(Socket.EVENT_MESSAGE, new Emitter.Listener() {
@Override
public void call(Object... arg0) {
//TODO Auto-generated method stub
Log.d("socketio", "socket event message" + arg0);
socket.emit("chat message", "android to server from event message");
}
});
//2nd segment test without connecting to 1 long method
socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener()
{
@Override
public void call(Object... arg0) {
//TODO Auto-generated method stub
Log.d("socketio", "socket event connect error");
socket.emit("chat message", "android to server: socket event connect error");
}
});
socket.on(Socket.EVENT_MESSAGE, new Emitter.Listener() {
@Override
public void call(Object... arg0) {
//TODO Auto-generated method stub
Log.d("socketio", "socket event message" + arg0);
socket.emit("chat message", "android to server from event message");
}
});
setContentView(R.layout.activity_main);
} //ending onCreate method
} //ending class
Merci pour la lecture
OriginalL'auteur Bigs | 2014-10-16
Vous devez vous connecter pour publier un commentaire.
Hy je ne sais pas si c'est exactement ce que tu cherches, et il pourrait y avoir une chance que vous avez déjà résolu, que je tiens à répondre que quand j'ai été la navigation pour une solution à mon problème, je suis tombé sur votre question ici, mais je couldnot trouver la réponse m'a laissé déçu. Comme je l'ai déjà résolu mon problème, je voudrais partager comment j'ai fait.
Mon problème est que j'ai été reçu le message de la node.js serveur, mais je ne pouvais voir ce message dans mon logcat et j'ai été vraiment avoir un problème pour imprimer ce message sur mon application android dans le main thread d'INTERFACE utilisateur.
Permet de dire, nous montrer le message reçu par le serveur dans la liste.
nous pouvons mettre à jour point de vue du thread principal. Vous devez déplacer la partie de la tâche en arrière-plan que les mises à jour de l'interface utilisateur sur le thread principal.Nous avons donc d'ajouter ce qui suit et de faire de notre tâche requise.
Espère que ça fera gagner du temps à quelqu'un.
Bonjour @Christine
OriginalL'auteur Christine
Hi Espère que la suite de la mise en œuvre aide.Voici le gestionnaire de classe qui garde la trace de toutes les inscriptions. en passant des rappels, de la création de la connexion, etc.
OriginalL'auteur Amardeep