openfireサービス端末メッセージの領収書の追加と応答


もっと読む
      openfire自体は、asmackやsmackなど、より良いフレームワークがたくさんあります.具体的にはインターネットで検索できます.openfire自体は長い接続に対するサポートがあまり良くないです.また、長い接続も資源を消耗します.しかし、適時に対応しなければなりません.
   これはいくつかの特殊なアカウントがサーバに存在します.これらのアカウントは自動的に友達を追加することができます.自動応答メッセージとメッセージの返信応答を実現します.メッセージの返信の応答と要求はsmackの端に良好なパッケージがあります.そして、サービス側もそのxml要求と応答に従います.
PacketExtension packetExtension2 = new PacketExtension(DeliveryReceipt.ELEMENT,DeliveryReceipt.NAMESPACE);
//    id                 
packetExtension2.getElement().addAttribute("id", message.getID());
//       
responseMessage.addExtension(packetExtension2);
XMPPServer.getInstance().getRoutingTable().routePacket(message.getFrom(), responseMessage, true);
 
メッセージの返信の応答は、比較的複雑であり、以下の通りである.
private static Message packMessageProperty(Message requestMessage , Map propertyValue){
		
		String key = null;
		String value = null;
		for (Map.Entry entry: propertyValue.entrySet()) {
			key = entry.getKey();
			value = entry.getValue();
		}
		Message sendMessage = new Message();
		sendMessage.setFrom(requestMessage.getTo());
		sendMessage.setTo(requestMessage.getFrom());
		sendMessage.setType(org.xmpp.packet.Message.Type.chat);
		//   property  
		PacketExtension packetExtension = new PacketExtension("properties","http://www.jivesoftware.com/xmlns/xmpp/properties");
		Element root = packetExtension.getElement();
		Element propertyElement = root.addElement("property");
		Element nameElement = propertyElement.addElement("name");
		Element valueElement = propertyElement.addElement("value");
		nameElement.setText(key);
		valueElement.addAttribute("type", "string");
		valueElement.setText(value);
		sendMessage.addExtension(packetExtension);
		return sendMessage;
	}
設定メッセージの領収書の主な原因は以下の通りです.
 1.メッセージの送信が成功したか確認し、再送信しやすい.
 2.openfireメッセージの配達率を統計する
 3.openfireのバックロスのリスクなどを補う