📄 clientsessionhandler1.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.ActiveTestMessage;
import org.apache.mina.examples.call.message.ActiveTestResponseMessage;
import org.apache.mina.examples.call.message.CallHangMessage;
import org.apache.mina.examples.call.message.CallInMessage;
import org.apache.mina.examples.call.message.CallOutMessage;
import org.apache.mina.examples.call.message.CallOutResponseMessage;
import org.apache.mina.examples.call.message.CallOutResultMessage;
import org.apache.mina.examples.call.message.LoginMessage;
import org.apache.mina.examples.call.message.LoginResponseMessage;
import org.apache.mina.examples.call.message.LogoutMessage;
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 ClientSessionHandler1 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
this.testLoginMsg(session);
//this.testCallInMsg(session); // add lk
//this.testActiveMsg(session); // add lk
//this.testLogoutMsg(session);
/*
* // delete by lk! LoginMessage login = new LoginMessage();
* login.setHead_len(Constants.MESSAGE_LEN_LOGIN);
* login.setHead_command(Constants.TYPE_LOGIN);
* login.setHead_sequence(Constants.nextSequenceId++);
*
* login.setUser("work2".getBytes());
* login.setPassword("password2".getBytes()); login.setDirection(0);
* login.setVersion(1); 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 client receive message type is LoginResponseMessage!");
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();
}
// this.testCallInMsg(session); // add lk
// this.testActiveMsg(session);
// this.testCallHangMsg(session);
// this.testCallOutResultMsg(session);
// this.testLogoutMsg(session);
}
// 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("client send call_out_response");
}
// add seg .lk
// process message
if (message instanceof ActiveTestMessage) {
System.out
.println("--info client receive message type is ActiveTestMessage");
ActiveTestMessage myMessage = (ActiveTestMessage) message;
ActiveTestResponseMessage response = new ActiveTestResponseMessage();
response.setHead_len(Constants.MESSAGE_LEN_ACTIVE_TEST_RESPONSE);
response.setHead_command(Constants.TYPE_ACTIVE_TEST_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();
}
// add begin .lk
public void testActiveMsg(ProtocolSession session) {
ActiveTestMessage activeMessage = new ActiveTestMessage();
activeMessage.setHead_len(Constants.MESSAGE_LEN_ACTIVE_TEST);
activeMessage.setHead_command(Constants.TYPE_ACTIVE_TEST);
activeMessage.setHead_sequence(Constants.nextSequenceId++);
System.out.println("activeMessage: head_len:" + activeMessage.getHead_len() + ";head_command:" + activeMessage.getHead_command()+ ";head_sequ:" + activeMessage.getHead_sequence() );
System.out.println("--info client session send SendActiveMsg... ");
session.write(activeMessage);
}
public void testLoginMsg(ProtocolSession session) {
LoginMessage login = new LoginMessage();
login.setHead_len(Constants.MESSAGE_LEN_LOGIN);
login.setHead_command(Constants.TYPE_LOGIN);
login.setHead_sequence(Constants.nextSequenceId++);
login.setUser("work2".getBytes());
login.setPassword("password2".getBytes());
login.setDirection(0);
login.setVersion(1);
login.setComment("test".getBytes());
// send login message
System.out.println("--info client session send login message");
session.write(login);
}
public void testLogoutMsg(ProtocolSession session) {
LogoutMessage logout = new LogoutMessage();
logout.setHead_len(Constants.MESSAGE_LEN_LOGOUT);
logout.setHead_command(Constants.TYPE_LOGOUT);
logout.setHead_sequence(Constants.nextSequenceId++);
// send logout message
System.out.println("--info client session send logout message");
session.write(logout);
}
public void testCallInMsg(ProtocolSession session) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
CallInMessage callIn = new CallInMessage();
callIn.setHead_len(Constants.MESSAGE_LEN_CALL_IN);
callIn.setHead_command(Constants.TYPE_CALL_IN);
callIn.setHead_sequence(Constants.nextSequenceId++);
callIn.setCaller("liuk".getBytes());
callIn.setZone("130".getBytes());
callIn.setReserve("ss".getBytes());
// send login message
System.out.println("--info client session send callIn message");
session.write(callIn);
}
public void testCallHangMsg(ProtocolSession session) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
CallHangMessage callHang = new CallHangMessage();
callHang.setHead_len(Constants.MESSAGE_LEN_CALL_IN);
callHang.setHead_command(Constants.TYPE_CALL_IN);
callHang.setHead_sequence(Constants.nextSequenceId++);
callHang.setCaller("liuk".getBytes());
callHang.setZone("130".getBytes());
callHang.setReserve("ss".getBytes());
System.out.println("--info client session send callHang message");
session.write(callHang);
}
public void testCallOutResultMsg(ProtocolSession session) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
CallOutResultMessage callOutResult = new CallOutResultMessage();
callOutResult.setHead_len(Constants.MESSAGE_LEN_CALL_OUT_RESULT);
callOutResult.setHead_command(Constants.TYPE_CALL_OUT_RESULT);
callOutResult.setHead_sequence(Constants.nextSequenceId++);
callOutResult.setDisplay("li".getBytes());
callOutResult.setZone("1303".getBytes());
callOutResult.setReserve("aa".getBytes());
callOutResult.setResult(1); // 1-callOut success;0-failure.
System.out.println("--info client session send callOutResult message");
session.write(callOutResult);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -