openfireサービス端末メッセージの領収書の追加と応答
2130 ワード
もっと読む
openfire自体は、asmackやsmackなど、より良いフレームワークがたくさんあります.具体的にはインターネットで検索できます.openfire自体は長い接続に対するサポートがあまり良くないです.また、長い接続も資源を消耗します.しかし、適時に対応しなければなりません.
これはいくつかの特殊なアカウントがサーバに存在します.これらのアカウントは自動的に友達を追加することができます.自動応答メッセージとメッセージの返信応答を実現します.メッセージの返信の応答と要求はsmackの端に良好なパッケージがあります.そして、サービス側もそのxml要求と応答に従います.
メッセージの返信の応答は、比較的複雑であり、以下の通りである.
1.メッセージの送信が成功したか確認し、再送信しやすい.
2.openfireメッセージの配達率を統計する
3.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のバックロスのリスクなどを補う