📄 serversessionhandler.java
字号:
.println("--info server receive message type is callInResponse");
CallInMessage myMessage = (CallInMessage) message;
System.out
.println("--info server receive a call in message,caller:"
+ myMessage.getCaller());
System.out
.println("--info server receive a call in message,reserve:"
+ myMessage.getReserve());
System.out.println("--info server receive a call in message,zone:"
+ myMessage.getZone());
// 亚信呼入处理逻辑开始
if (0 == testWebService.testHandleCallInMsg(this.getStringAttribute(session,"name"),myMessage.getCaller().toString(),myMessage.getZone().toString())){ // 调用小胡的函数传递callIn消息。
System.out.println("callIn failure!");
session.close();
}
else{
System.out.println("callIn success!");
}
// 亚信呼入处理逻辑结束
// must send call_in_response
CallInResponseMessage response = new CallInResponseMessage();
response.setHead_len(Constants.MESSAGE_LEN_CALL_IN_RESPONSE);
response.setHead_command(Constants.TYPE_CALL_IN_RESPONSE);
response.setHead_sequence(myMessage.getHead_sequence());
session.write(response);
}
// process call_hang
if (message instanceof CallHangMessage) {
System.out
.println("--info server receive message type is callInResponse");
CallHangMessage myMessage = (CallHangMessage) message;
System.out
.println("--info server receive a call in message,caller:"
+ myMessage.getCaller());
System.out
.println("--info server receive a call in message,reserve:"
+ myMessage.getReserve());
System.out.println("--info server receive a call in message,zone:"
+ myMessage.getZone());
// 亚信挂机处理逻辑开始
if (0 == testWebService.testHandleCallHangMsg(this.getStringAttribute(session,"name"),myMessage.getCaller().toString(),myMessage.getZone().toString())){ // 调用小胡的函数传递callHang消息。
System.out.println("callHang failure!");
session.close();
}
else{
System.out.println("callHang success!");
}
// 亚信挂机处理逻辑结束
// must send call_hang_response
CallHangResponseMessage response = new CallHangResponseMessage();
response.setHead_len(Constants.MESSAGE_LEN_CALL_IN_RESPONSE);
response.setHead_command(Constants.TYPE_CALL_IN_RESPONSE);
response.setHead_sequence(myMessage.getHead_sequence());
session.write(response);
}
// process call_out_result_response_response
if (message instanceof CallOutResultMessage) {
System.out
.println("--info server receive message type is CallOutResultMessage");
CallOutResultMessage myMessage = (CallOutResultMessage) message;
System.out
.println("--info server receive a call in CallOutResultMessage,display:"
+ myMessage.getDisplay());
System.out
.println("--info server receive a call in CallOutResultMessage,zone:"
+ myMessage.getZone());
System.out
.println("--info server receive a call in CallOutResultMessage,reserve:"
+ myMessage.getReserve());
System.out
.println("--info server receive a call in CallOutResultMessage,result:"
+ myMessage.getResult());
// 处理呼出结果逻辑开始
if (0 == testWebService.testHandleCallOutResultMsg(this.getStringAttribute(session,"name"),myMessage.getDisplay().toString(),myMessage.getZone().toString(),myMessage.getResult())){ // 调用小胡的函数传递callOutResult消息。
System.out.println("callOutResult failure!");
session.close();
}
else{
System.out.println("callOutResult success!");
}
// 处理呼出结果逻辑结束
// must send call_out_result_response
CallOutResultResponseMessage response = new CallOutResultResponseMessage();
response
.setHead_len(Constants.MESSAGE_LEN_CALL_OUT_RESULT_RESPONSE);
response.setHead_command(Constants.TYPE_CALL_OUT_RESULT_RESPONSE);
response.setHead_sequence(myMessage.getHead_sequence());
session.write(response);
}
// process active_test_response_response
if (message instanceof ActiveTestMessage) {
System.out
.println("--info server 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);
}
// process active_test_response_response
if (message instanceof ActiveTestResponseMessage) {
ActiveTestResponseMessage myMessage = (ActiveTestResponseMessage) message;
activeResponse = myMessage;
System.out
.println("--info server receive message type is ActiveTestResponseMessage");
}
System.out.println("--info server message Received end,class:" + this);
}
public void test(ProtocolSession session, Object message) {
// test send call out message
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("test,server send CallOut...");
CallOutMessage sendMessage = new CallOutMessage();
sendMessage.setHead_len(Constants.MESSAGE_LEN_CALL_OUT);
sendMessage.setHead_command(Constants.TYPE_CALL_OUT);
sendMessage.setHead_sequence(0);
sendMessage.setSrc("05856".getBytes());
sendMessage.setDisplay("1860".getBytes());
sendMessage.setDest("138".getBytes());
sendMessage.setService("help".getBytes());
sendMessage.setZone("022".getBytes());
sendMessage.setReserve("dian".getBytes());
// send
session.write(sendMessage);
System.out.println("session.write(sendMessage) end!");
}
// add seg .lk
public void testActiveTest(ProtocolSession session, Object message) {
// test send activeTest message
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("test,server send ActiveTest...");
ActiveTestMessage sendMessage = new ActiveTestMessage();
sendMessage.setHead_len(Constants.MESSAGE_LEN_ACTIVE_TEST);
sendMessage.setHead_command(Constants.TYPE_ACTIVE_TEST);
sendMessage.setHead_sequence(0);
System.out.println("activeMessage: head_len:" + sendMessage.getHead_len() + ";head_command:" + sendMessage.getHead_command()+ ";head_sequ:" + sendMessage.getHead_sequence() );
// send
session.write(sendMessage);
System.out.println("session.write(sendMessage) end!");
}
// add seg.lk
/*
public int testCallWebLogin(String account,String no){
if(1==1)
return 1;
else
return 0;
}
public int testHandleCallInMsg(String account,String no1,String no2){
if(1==1)
return 1;
else
return 0;
}
*/
public void messageSent(ProtocolSession session, Object message) { // 调用session.write(),立即返回,发送数据结束时候会调用messageSent该方法。
System.out.println("--info session message send");
}
public void sessionIdle(ProtocolSession session, IdleStatus status) {
System.out.println("--info sessionIdle");
// add segment .lk
// 发送 心跳,接受心跳回应,判断连接是否成功,不成功则关闭session。
//??
//activeResponse = null;
//testSendActiveTest(session,null);
activeResponse1 = null;
//this.test(session,null);
try {
System.out.println("Thread sleep: 10 s" );
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("activeResponse1:" + activeResponse1);
if(activeResponse1 instanceof CallOutResponseMessage){
System.out.println("ActiveTest success!");
}
else{
System.out.println("ActiveTest failure!session close.");
session.close();
}
}
public void exceptionCaught(ProtocolSession session, Throwable cause) {
cause.printStackTrace();
// close the connection on exceptional situation
session.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -