Olá pessoal.
Seguinte…
Tenho uma app mobile que roda em aparelhos Nextel.
Por causa da Nextel só oferecer IP NAT aos aparelhos e eu não querer gastar com SMS
para acordar as aplicações pelo PushRegistry…
A seguinte situação…
Tenho um Servidor de aplicações em Delphi… Que é meu servidor socket…
O mobile, ao iniciar, se registra nesse servidor socket e fica aguardando mensagens dele!
Ou seja, “emulei” um falso PushRegistry…
public void regitrarClientSocket() throws IOException{
sc = (SocketConnection) Connector.open(“socket://IpDoServidorSocket:40000”);
sc.setSocketOption(SocketConnection.LINGER, 5);
is = sc.openInputStream();
os = sc.openOutputStream();
os.write(LoginUsuario.getBytes());
}
public class escutarSocket extends Thread {
public void run(){ int ch = 0;
while(ch != -1) {
try {
ch = is.read();
} catch (IOException ex) {
ex.printStackTrace();
}
resumeRequest();
startApp();
msg(“Algo vindo da web”);
display.setCurrent(formMaim);
}
}
}
e no StartApp() tenho
if(!ConectadoAoServidor){
try {
regitrarClientSocket();
ConectadoAoServidor = true;
} catch (IOException ex) {
ex.printStackTrace();
}
}
//Verificar a cada X minutos se usuário está conectado
escutarSocket doIt = new escutarSocket();
Thread myThread = new Thread( doIt );
myThread.start();
Mas tenho uma dúvida… A conexão do servidor ou do celular pode cair…
Então vou criar um timer que verifica de tempos em tempos se o socket ainda está conectado…
Ai está a questão…
Como faço para saber se esse cliente socket Sc que criei, ainda está conectado.
Qual metodo utilizar?
teria algum sc.IsConected() ???/
valew!