采用message消息 privacy list check_packet

 

 

采用message消息 privacy list check_packet

 check_packet默认返回allow,其他返回action(allow|deny)

 

<message to="server_test_user_2@servertest.igrslabdns.com/user2" type="chat" id="mir_180">

<composing xmlns="http://jabber.org/protocol/chatstates" />

</message>

­打字......

<message to="server_test_user_2@servertest.igrslabdns.com/user2" type="chat" id="mir_181">

<paused xmlns="http://jabber.org/protocol/chatstates" />

</message>

­停止打字.........

<message type="chat" to="server_test_user_2@servertest.igrslabdns.com/user2" id="mir_182">

<body>hi</body>

<active xmlns="http://jabber.org/protocol/chatstates" />

</message>

­发送hi消息...........

­

 

-----------------------------------------------------------------------------------------------

privarcy_list

 

<iq type="set" id="mir_200">

<query xmlns="jabber:iq:privacy">

<list name="jidmessage">

<item type="jid" value="server_test_device_2@servertest.igrslabdns.com" action="deny" order="100">

<message />

</item>

</list>

</query>

</iq>

----------------------------------------------------------------------

check_packet/6方法在检查privacy_list时默认返回allow,当ClientA 给ClientB发送消息时,Check_packe/6会执行两次分别为 out和in两个方向的数据进行校验.(MirandaIM是一个不错的工具,能查看客户端所有的xmpp格式消息(IQ,Message,presence)

用im()debug跟踪时发现check_packet执行多次,仔细观察发现分别对out和in校验多次。另外还有多余的message:标记了chat的状态(http://jabber.org/protocol/chatstates)否别是'composing,paused'.发送消息用<body/>

-----------------------------------------------------------------------------------------------

is_type_mathc(Type, Value, JID,Subscription,Groups)

   case Type of

        jid ->

            case Value of

               {"", Server, ""} ->

                    case JID of

                          {_,Server,_} ->

                               true;

                           _ ->

                               false

                    end;

               {"User", Server, ""} ->

                    case JID of

                          {User,Server,_} ->

                               true;

                           _ ->

                               false

                    end;                 

               _ -> Value ==JID

            end;

        subscription ->

            Value==Subscription;

        group ->

            lists:member(Value,Groups)

   end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值