当前位置: 首页>>代码示例>>Java>>正文


Java ServerMessage类代码示例

本文整理汇总了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){};
	}
	
	
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:25,代码来源:ClientStatMachine.java

示例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){};
	}
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:24,代码来源:ClientStatMachine.java

示例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){};
	}
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:24,代码来源:ClientStatMachine.java

示例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);
	
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:17,代码来源:ClientStatMachine.java

示例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);
	}
	
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:26,代码来源:Messenger.java

示例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();
	}
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:20,代码来源:MessengerTask.java

示例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);
	}
	
}
 
开发者ID:taojiaenx,项目名称:taojiane_push,代码行数:25,代码来源:UDPMessenger.java

示例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;
	}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:30,代码来源:ClientStatMachine.java

示例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);
	}
	
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:28,代码来源:ClientStatMachine.java

示例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);
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:12,代码来源:ClientStatMachine.java

示例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);
	
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:16,代码来源:ClientStatMachine.java

示例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);
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:16,代码来源:ClientStatMachine.java

示例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);
	}

}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:31,代码来源:MessengerTask.java

示例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());
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:12,代码来源:Sender.java

示例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;
}
 
开发者ID:ahhblss,项目名称:ddpush,代码行数:8,代码来源:Sender.java


注:本文中的org.ddpush.im.v1.node.ServerMessage类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。