flash p2p的"NetGroup.Connect.Success"事件里,为什么不能netGroup.post
最近在做一个IM的应用,涉及到"好友上线提示"这个功能,我的想法是在"NetGroup.Connect.Success"事件里,利用netGroup.post(message)向好友组广播上线的消息,然后好友通过"NetGroup.Posting.Notify"事件接受到这条消息,然后提示"XXX上线了"
但是我发现,在"NetGroup.Connect.Success"事件里,你调用netGroup.post(),对方根本接收不到这条消息!请问大家是怎么回事?照道理说这个时候加入组已经成功了,怎么就不让调用post呢?
代码大致如下:
private function netStatusHandler(e:NetStatusEvent):void
{
switch(e.info.code)
{
case "NetConnection.Connect.Success": //与Stratus链接成功,开始创建/进入组
//定义组
groupSpecifier = new GroupSpecifier("imChatGroup");
groupSpecifier.multicastEnabled = true;
groupSpecifier.postingEnabled = true;
groupSpecifier.serverChannelEnabled = true;
groupSpecifier.routingEnabled = true;
//创建netStream去连接Group
netStream = new NetStream(netConn,groupSpecifier.groupspecWithAuthorizations());
netStream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
//加入用户组
netGroup = new NetGroup(netConn,groupSpecifier.groupspecWithAuthorizations());
netGroup.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
break;
case "NetGroup.Connect.Success":
//加入用户组成功
var message:Object = new Object;
message.text = "XX用户上线";
message.unique = NumberUtilities.getUnique(); //保证消息唯一性
netGroup.post(message);
break;
case "NetGroup.Posting.Notify":
//收到信息
trace("收到消息"+e.info.message.text); //这一句根本不触发,也就是没有收到消息
break;
}
}