public
class
ThreadTest {
private
Session session_ =
null
;
private
Context mContext;
public
ThreadTest(Context context){
this
.mContext = context;
}
synchronized
public
void
socketConnect() {
final
AsyncTask<Void, Void, Void> asyncTask =
new
AsyncTask<Void, Void, Void>() {
@Override
protected
Void doInBackground(Void... voids) {
try
{
final
ClientManager client = ClientManager.createClient();
Log.i(TAG,
"### 1 AsyncTask.doInBackground"
);
client.connectToServer(
new
Endpoint() {
@Override
public
void
onOpen(Session session, EndpointConfig EndpointConfig) {
session_ = session;
try
{
session.addMessageHandler(
new
MessageHandler.Whole<String>() {
@Override
public
void
onMessage(String message) {
Log.i(TAG,
"### 3 Tyrus Client onMessage: "
+ message);
}
});
Log.i(TAG,
"### 2 Tyrus Client onOpen"
);
}
catch
(Exception e) {
}
}
@Override
public
void
onClose(Session session, CloseReason closeReason) {
super
.onClose(session, closeReason);
Log.i(TAG,
"onClose :: session = "
+(session ==
null
?
"false"
:
"true"
));
}
}
catch
(DeploymentException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
return
null
;
}
};
asyncTask.execute();
}
synchronized
public
boolean
isConnected(){
return
session_ ==
null
?
false
:
true
;
}
public
void
sendMessage(String a) {
if
(isConnected()) {
try
{
session_.getBasicRemote().sendText(a);
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
public
void
wsClose(){
if
(isConnected()) {
try
{
session_.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
}