package org.apache.mina.example.chat.client;import org.apache.mina.core.service.IoHandler;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.example.chat.ChatCommand;/**
* {@link IoHandler} implementation of the client side of the simple chat protocol.
*
* @author The Apache MINA Project ([email protected])
*/
public class SwingChatClientHandler extends IoHandlerAdapter { public interface Callback {
void connected(); void loggedIn(); void loggedOut(); void disconnected(); void messageReceived(String message); void error(String message);
} private final Callback callback; public SwingChatClientHandler(Callback callback) {
this.callback = callback;
} @Override
public void sessionOpened(IoSession session) throws Exception {
callback.connected();
} @Override
public void messageReceived(IoSession session, Object message)
throws Exception {
String theMessage = (String) message;
String[] result = theMessage.split(" ", 3);
String status = result[1];
String theCommand = result[0];
ChatCommand command = ChatCommand.valueOf(theCommand); if ("OK".equals(status)) { switch (command.toInt()) { case ChatCommand.BROADCAST:
if (result.length == 3) {
callback.messageReceived(result[2]);
}
break;
case ChatCommand.LOGIN:
callback.loggedIn();
break; case ChatCommand.QUIT:
callback.loggedOut();
break;
} } else {
if (result.length == 3) {
callback.error(result[2]);
}
}
} @Override
public void sessionClosed(IoSession session) throws Exception {
callback.disconnected();
}}
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.example.chat.ChatCommand;/**
* {@link IoHandler} implementation of the client side of the simple chat protocol.
*
* @author The Apache MINA Project ([email protected])
*/
public class SwingChatClientHandler extends IoHandlerAdapter { public interface Callback {
void connected(); void loggedIn(); void loggedOut(); void disconnected(); void messageReceived(String message); void error(String message);
} private final Callback callback; public SwingChatClientHandler(Callback callback) {
this.callback = callback;
} @Override
public void sessionOpened(IoSession session) throws Exception {
callback.connected();
} @Override
public void messageReceived(IoSession session, Object message)
throws Exception {
String theMessage = (String) message;
String[] result = theMessage.split(" ", 3);
String status = result[1];
String theCommand = result[0];
ChatCommand command = ChatCommand.valueOf(theCommand); if ("OK".equals(status)) { switch (command.toInt()) { case ChatCommand.BROADCAST:
if (result.length == 3) {
callback.messageReceived(result[2]);
}
break;
case ChatCommand.LOGIN:
callback.loggedIn();
break; case ChatCommand.QUIT:
callback.loggedOut();
break;
} } else {
if (result.length == 3) {
callback.error(result[2]);
}
}
} @Override
public void sessionClosed(IoSession session) throws Exception {
callback.disconnected();
}}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货