estoy tratando de codificar un pequeño cliente XMPP gtalk en java. Sé que hay muchas bibliotecas que lo ayudan, pero el RFC es tan fácil de entender que decido escribir un cliente por mi cuenta. sé que el servidor gtalk es talk.google.com:5222 pero cuando intento este pequeño programa me da este resultado:¿Cómo conectarse a gtalk en java?
HTTP/1.1 302 Found
Location: http://www.google.com/talk/
Content-Type: text/html
Content-Length: 151
<HTML><HEAD><TITLE>302 Moved</TITLE></HEAD><BODY><H1>302 Moved</H1>The document has moved <A HREF="http://www.google.com/talk/">here</A>.</BODY></HTML>
También probé para conectar la ubicación especificada pero no funciona. Aquí está mi código en java:
package fr.grosdim.myjabber;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.net.ssl.SSLPeerUnverifiedException;
import javax.net.ssl.SSLSocketFactory;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory
.getDefault();
try {
Socket s = new Socket("talk.google.com", 5222);
PrintWriter out = new PrintWriter(s.getOutputStream());
out.println("<?xml version=\\'1.0\\' encoding=\\'utf-8\\' ?>");
out
.println("<stream:stream to='talk.google.com:5222' "
+ "xmlns='jabber:client'"
+ " xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>");
out.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(s
.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
out.println("</stream>");
s.close();
} catch (SSLPeerUnverifiedException e) {
System.out.println(" Erreur d'auth :" + e.getLocalizedMessage());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
}
}
¿Cómo me puedo conectar al servidor gtalk?
Spark es un cliente web y Openfire un servidor XMPP, lo que necesita (para un cliente) es la API de Smack. – Guillaume
@Guillaume - [SparkWeb] (http://www.igniterealtime.org/projects/sparkweb/index.jsp) es un cliente web. [Spark] (http://www.igniterealtime.org/projects/spark/index.jsp) es un cliente de escritorio. – Seth
Enlace directo para Smack está aquí http://www.igniterealtime.org/projects/smack/ –