📄 clientsessionhandler.java
字号:
/*
* @(#) $Id: ClientSessionHandler.java 357871 2005-12-20 01:56:40Z trustin $
*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.mina.examples.call;
import org.apache.mina.examples.call.message.CallOutMessage;
import org.apache.mina.examples.call.message.CallOutResponseMessage;
import org.apache.mina.examples.call.message.LoginMessage;
import org.apache.mina.examples.call.message.LoginResponseMessage;
import org.apache.mina.protocol.ProtocolHandler;
import org.apache.mina.protocol.ProtocolHandlerAdapter;
import org.apache.mina.protocol.ProtocolSession;
/**
* {@link ProtocolHandler} for SumUp client.
*
* @author The Apache Directory Project
* @version $Rev: 357871 $, $Date: 2005-12-20 10:56:40 +0900 (Tue, 20 Dec 2005) $
*/
public class ClientSessionHandler extends ProtocolHandlerAdapter {
private boolean finished;
public boolean isFinished() {
return finished;
}
public void sessionCreated(ProtocolSession session) {
System.out.println("--info client sessionCreated");
}
public void sessionOpened(ProtocolSession session) {
System.out.println("--info client sessionOpened");
// send login request
LoginMessage login = new LoginMessage();
login.setHead_len(Constants.MESSAGE_LEN_LOGIN);
login.setHead_command(Constants.TYPE_LOGIN);
login.setHead_sequence(Constants.nextSequenceId++);
login.setUser("work1".getBytes());
login.setPassword("password1".getBytes());
login.setDirection(0);
login.setVersion(0);
login.setComment("test".getBytes());
// send login message
System.out.println("--info client session send login message");
session.write(login);
}
public void messageReceived(ProtocolSession session, Object message) {
System.out.println("--info messageReceived begin");
// process login response message
if (message instanceof LoginResponseMessage) {
LoginResponseMessage myMessage = (LoginResponseMessage) message;
System.out.println("--info loginResponse result:"
+ myMessage.getResult());
System.out.println("--info loginResponse version:"
+ myMessage.getVersion());
if (myMessage.getResult() == 0) {
// session.close();
finished = true;
} else {
System.out.println("--info client login failed result:"
+ myMessage.getResult());
finished = false;
session.close();
}
}
// process call_out message
if (message instanceof CallOutMessage) {
CallOutMessage myMessage = (CallOutMessage) message;
System.out.println("--info CallOutMessage src:"
+ new String(myMessage.getSrc()));
System.out.println("--info CallOutMessage dest:"
+ new String(myMessage.getDest()));
System.out.println("--info CallOutMessage display:"
+ new String(myMessage.getDisplay()));
System.out.println("--info CallOutMessage zone:"
+ new String(myMessage.getZone()));
System.out.println("--info CallOutMessage service:"
+ new String(myMessage.getService()));
// send call_out_response
CallOutResponseMessage response = new CallOutResponseMessage();
response.setHead_len(Constants.MESSAGE_LEN_CALL_OUT_RESPONSE);
response.setHead_command(Constants.TYPE_CALL_OUT_RESPONSE);
response.setHead_sequence(myMessage.getHead_sequence());
session.write(response);
}
System.out.println("--info messageReceived end");
}
public void exceptionCaught(ProtocolSession session, Throwable cause) {
cause.printStackTrace();
session.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -