本文整理汇总了Java中org.ddpush.im.v1.node.ServerMessage类的典型用法代码示例。如果您正苦于以下问题:Java ServerMessage类的具体用法?Java ServerMessage怎么用?Java ServerMessage使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ServerMessage类属于org.ddpush.im.v1.node包,在下文中一共展示了ServerMessage类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: push0x10
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void push0x10() throws Exception{
if(this.hasMessage0x10 == false){
return;
}
if((this.lastAddr == null || (System.currentTimeMillis() - this.lastTick)>1000*PUSH_IM_AFTER_ACTIVE_SECOND) && this.getMessengerTask() == null ){
return;
}
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH];//5 bytes
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put((byte)0);//app id,0 here
bb.put((byte)ClientStatMachine.CMD_0x10);//cmd
bb.putShort((short)0);//length 0
bb.flip();
ServerMessage sm = new ServerMessage(this.lastAddr, data);
if(this.lastAddr != null && (System.currentTimeMillis() - this.lastTick)<1000*PUSH_IM_AFTER_ACTIVE_SECOND){
IMServer.getInstance().pushInstanceMessage(sm);
}
if(this.getMessengerTask() != null){
try{this.getMessengerTask().pushInstanceMessage(sm);}catch(Exception e){};
}
}
示例2: push0x11
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void push0x11() throws Exception{
if(this.message0x11 == 0){
return;
}
if((this.lastAddr == null || (System.currentTimeMillis() - this.lastTick)>1000*PUSH_IM_AFTER_ACTIVE_SECOND) && this.getMessengerTask() == null ){
return;
}
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH+8];//13 bytes
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put((byte)0);//app id, 0 here
bb.put((byte)ClientStatMachine.CMD_0x11);//cmd
bb.putShort((short)8);//length 8
bb.putLong(message0x11);
bb.flip();
ServerMessage sm = new ServerMessage(this.lastAddr, data);
if(this.lastAddr != null && (System.currentTimeMillis() - this.lastTick)<1000*PUSH_IM_AFTER_ACTIVE_SECOND){
IMServer.getInstance().pushInstanceMessage(sm);
}
if(this.getMessengerTask() != null){
try{this.getMessengerTask().pushInstanceMessage(sm);}catch(Exception e){};
}
}
示例3: push0x20
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void push0x20() throws Exception{
if(has0x20Message() == false){
return;
}
if((this.lastAddr == null || (System.currentTimeMillis() - this.lastTick)>1000*PUSH_IM_AFTER_ACTIVE_SECOND) && this.getMessengerTask() == null ){
return;
}
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH+message0x20Len];
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put((byte)0);//app id, 0 here
bb.put((byte)ClientStatMachine.CMD_0x20);//cmd
bb.putShort((short)message0x20Len);
bb.put(this.message0x20);
bb.flip();
ServerMessage sm = new ServerMessage(this.lastAddr, data);
if(this.lastAddr != null && (System.currentTimeMillis() - this.lastTick)<1000*PUSH_IM_AFTER_ACTIVE_SECOND){
IMServer.getInstance().pushInstanceMessage(sm);
}
if(this.getMessengerTask() != null){
try{this.getMessengerTask().pushInstanceMessage(sm);}catch(Exception e){};
}
}
示例4: gen0x20Message
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void gen0x20Message(ClientMessage cm, ArrayList<ServerMessage> smList) throws Exception{
if(this.has0x20Message() == false){
return;
}
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH + message0x20Len];//5+length bytes
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put(cm.getData()[1]);//app id
bb.put((byte)ClientStatMachine.CMD_0x20);//cmd
bb.putShort((short)message0x20Len);//length
bb.put(message0x20);
bb.flip();
ServerMessage sm = new ServerMessage(cm.getSocketAddress(), data);
smList.add(sm);
}
示例5: deliverMessage
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void deliverMessage(ClientMessage m) throws Exception{
//System.out.println(this.hostThread.getName()+" receive:"+StringUtil.convert(m.getData()));
//System.out.println(m.getSocketAddress().getClass().getName());
String uuid = m.getUuidHexString();
//ClientStatMachine csm = NodeStatus.getInstance().getClientStat(uuid);
ClientStatMachine csm = nodeStat.getClientStat(uuid);// 查找内存中的状态机
if(csm == null){//
csm = ClientStatMachine.newByClientTick(m);/// 创建状态机
if(csm == null){
return;
}
nodeStat.putClientStat(uuid, csm);
}
// 查找是否有消息发送给终端
ArrayList<ServerMessage> smList = csm.onClientMessage(m);
if(smList == null){
return;
}
for(int i = 0; i < smList.size(); i++){
ServerMessage sm = smList.get(i);
if(sm.getSocketAddress() == null)continue;
this.connector.send(sm);
}
}
示例6: pushInstanceMessage
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
public void pushInstanceMessage(ServerMessage sm){
if(sm == null || sm.getData() == null || sm.getData().length == 0){
return;
}
if(this.channel == null || this.channel.isConnected()==false || this.channel.isRegistered() == false){
return;
}
if(this.isCancel == true){
return;
}
if(this.pendingEvents == null){
this.pendingEvents = new java.util.LinkedList<ServerMessage>();
}
this.pendingEvents.add(sm);
if(key != null){
this.registerForWrite(key, true);
key.selector().wakeup();
}
}
示例7: deliverMessage
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void deliverMessage(ClientMessage m) throws Exception{
//System.out.println(this.hostThread.getName()+" receive:"+StringUtil.convert(m.getData()));
//System.out.println(m.getSocketAddress().getClass().getName());
String uuid = m.getUuidHexString();
//ClientStatMachine csm = NodeStatus.getInstance().getClientStat(uuid);
ClientStatMachine csm = nodeStat.getClientStat(uuid);
if(csm == null){//
csm = ClientStatMachine.newByClientTick(m);
if(csm == null){
return;
}
nodeStat.putClientStat(uuid, csm);
}
ArrayList<ServerMessage> smList = csm.onClientMessage(m);
if(smList == null){
return;
}
for(int i = 0; i < smList.size(); i++){
ServerMessage sm = smList.get(i);
if(sm.getSocketAddress() == null)continue;
this.connector.send(sm);
}
}
示例8: onClientMessage
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
public synchronized ArrayList<ServerMessage> onClientMessage(ClientMessage cm) throws Exception{
if(cm == null){
throw new NullPointerException("param client message is null");
}
// if(cm.getSocketAddress() == null){
// throw new NullPointerException("client socket address is null");
// }
ArrayList<ServerMessage> smList = new ArrayList<ServerMessage>();
if(cm.getCmd() == ClientStatMachine.CMD_0x00){//心跳
// nothing to do
}else if(cm.getCmd() == ClientStatMachine.CMD_0x10){//确认通用信息
this.clear0x10Message();
return smList;
}else if(cm.getCmd() == ClientStatMachine.CMD_0x11){//确认分组信息
this.clear0x11Message(cm.getData(), Constant.CLIENT_MESSAGE_MIN_LENGTH);
return smList;
}else if(cm.getCmd() == ClientStatMachine.CMD_0x20){//确认自定义信息
this.clear0x20Message();
return smList;
}else{//非法命令
return null;
}
this.genServerMessageList(cm, smList);
return smList;
}
示例9: genServerMessageList
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void genServerMessageList(ClientMessage cm, ArrayList<ServerMessage> smList) throws Exception {
this.lastTick = System.currentTimeMillis();
boolean needTickBack = false;
if(cm.getSocketAddress() == null){
needTickBack = false;
}else if(ackHeartbeatPolicy == POLICY_ALWAYS){
needTickBack = true;
}else if(ackHeartbeatPolicy == POLICY_NEVER){
needTickBack = false;
}else{
if(cm.getSocketAddress().equals(lastAddr)){//最新地址和上次地址一致,不回应心跳包
needTickBack = false;
}else{//地址改变,回应心跳包
needTickBack = true;
}
}
if(cm.getSocketAddress() != null){
lastAddr = cm.getSocketAddress();
}
gen0x10Message(cm, smList);
gen0x11Message(cm, smList);
gen0x20Message(cm, smList);
if(needTickBack == true && smList.size() == 0){
gen0x00Message(cm,smList);
}
}
示例10: gen0x00Message
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void gen0x00Message(ClientMessage cm, ArrayList<ServerMessage> smList) throws Exception{
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH];//5 bytes
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put(cm.getData()[1]);//app id
bb.put((byte)ClientStatMachine.CMD_0x00);//cmd
bb.putShort((short)0);//length 0
bb.flip();
ServerMessage sm = new ServerMessage(cm.getSocketAddress(), data);
smList.add(sm);
}
示例11: gen0x10Message
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void gen0x10Message(ClientMessage cm, ArrayList<ServerMessage> smList) throws Exception{
if(!hasMessage0x10){
return;
}
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH];//5 bytes
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put(cm.getData()[1]);//app id
bb.put((byte)ClientStatMachine.CMD_0x10);//cmd
bb.putShort((short)0);//length 0
bb.flip();
ServerMessage sm = new ServerMessage(cm.getSocketAddress(), data);
smList.add(sm);
}
示例12: gen0x11Message
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void gen0x11Message(ClientMessage cm, ArrayList<ServerMessage> smList) throws Exception{
if(message0x11 == 0){
return;
}
byte[] data = new byte[Constant.SERVER_MESSAGE_MIN_LENGTH+8];//13 bytes
ByteBuffer bb = ByteBuffer.wrap(data);
bb.put((byte)1);//version
bb.put(cm.getData()[1]);//app id
bb.put((byte)ClientStatMachine.CMD_0x11);//cmd
bb.putShort((short)8);//length 8
bb.putLong(message0x11);
bb.flip();
ServerMessage sm = new ServerMessage(cm.getSocketAddress(), data);
smList.add(sm);
}
示例13: processReq
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
private void processReq() throws Exception{
//check and put data into nodeStat
//buffer.flip();
byte[] data = new byte[buffer.limit()];
System.arraycopy(bufferArray, 0, data, 0, buffer.limit());
buffer.clear();
this.writePending = false;//important
ClientMessage cm = new ClientMessage(null, data);
NodeStatus nodeStat = NodeStatus.getInstance();
String uuid = cm.getUuidHexString();
ClientStatMachine csm = nodeStat.getClientStat(uuid);
if(csm == null){//
csm = ClientStatMachine.newByClientTick(cm);
if(csm == null){
return;
}
nodeStat.putClientStat(uuid, csm);
}
csm.setMessengerTask(this);
ArrayList<ServerMessage> smList = csm.onClientMessage(cm);
if(smList == null || smList.size() == 0){
return;
}
for(int i = 0; i < smList.size(); i++){
ServerMessage sm = smList.get(i);
this.pushInstanceMessage(sm);
}
}
示例14: processMessage
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
protected void processMessage() throws Exception{
buffer.clear();
ServerMessage pendingMessage = dequeue();
if(pendingMessage == null){
//Thread.yield();
return;
}
buffer.put(pendingMessage.getData());
buffer.flip();
channel.send(buffer, pendingMessage.getSocketAddress());
}
示例15: enqueue
import org.ddpush.im.v1.node.ServerMessage; //导入依赖的package包/类
protected boolean enqueue(ServerMessage message){
boolean result = mq.add(message);
if(result == true){
queueIn.addAndGet(1);
}
return result;
}