怎样转发短信信没有有效的接收者如何处理

那要看发信人的手机中短信设置里接收报告是否开启,开启后发信息对方要是收到后你这边就有信息提醒,如果对方关机你这边就没反映,等他什么时候开机收到信息,你这边也就会同时收到提醒。诺基亚所有手机都是如此,其他手机大多也是这样。
其他答案(共2个回答)
。。。。。
在手机彩信发送设置中设置一下就行了。选择接收发送报告就行了。如果对方收不到,或者你没有成功发送,会有短信提醒的。
第一,彩信功能不是单独的功能,没有开通的说法。只要手机支持彩信,并且你开通了GPRS连接功能,并设置好相应的参数,就可以发送和接收彩信。一般买回来的支持彩信的手...
正常情况下应该收到,收不到几乎不可能.如果有这种情况出现,一方面是网络有影响,二是手机用户没有开机,超出保存时间就不会看到.
1:由于网络延迟,信息被移动吃掉
2:C没有成功接收
3:信息过期
==============================
这和手机设置无关
我并不是完全赞同楼上的观点。
我也是经常收到一个移动的发给我的彩信,应该都是“与时俱进"的。我发信息他也不回,打电话就是一阵盲音,但是并没有扣话费怎么的!
答: 有三个主要区别:照片流只上传设备照片,而 iCloud 照片图库会将设备的整个图库,包括拍摄的视频视频在内全部上传到 iCloud。照片流不占用 iCloud ...
答: 中关村在线可以
答: 应该是没那个软件
答: 检查手机网络设置是不被禁止了
大家还关注
Copyright &
Corporation, All Rights Reserved
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区  几个月前微信连着三次收到我嫂子发给我的类似信息,第一次第二次都没理,第三次我把她微信删了。结果没过几天我小侄子把我拉到一个讨论组,刚进去,我小侄子就又发了一个类似的信息。我把我侄子训了一顿。这事儿算结了。谁知道过了几天我又收到我嫂子的小侄子一条这样的信息。  越想越恼火,跟我哥说,我哥说会给我个交代,憋了半天,晚上跟我说,别人家的孩子他管不了,不过保证以后不让我小侄子他们给我发了。这就算了交代了!  越想越生气,我删了她微信,她应该知道我恼火,还一再紧逼,我小侄子给我发的,让我觉得是他妈指示的。  真是想不通,不知道该怎么原谅他们
楼主发言:16次 发图:0张 | 更多
  这种人有病  
  把头发转几下就行了啊。
  无视  
  诅咒信息我都无视的,自带强力反弹防护罩!!  
  再收到你就给他发回去,膈应膈应  
  拉黑删除
  我记得以前在QQ上用的是凤姐的反诅咒图片,LZ可以试试
  前几年过年,正月初二,一个不怎么熟悉的人发给我,要转发十二个人,不然要倒霉一整年,真的生气,然后我就又给她发回去,只发给她一个人了,让她继续找12个人发去,不知道她要被多少人骂死,活该。  
  回复这个就好  咒诅诸毒药 所欲害身者 念彼观音力 还着於本人  这是正经佛偈  不是段子
  如果这么简单的诅咒会有效的话,那简直就是魔法世界了好吧,互相之间讨伐只需要动动嘴或者打打字就可以造成伤害了。
  复制,黏贴。发回去,拉黑。搞定
  心情好一笑而过 不好的话 直接给他发回去  
  我就回发给他```
  你自己不转发就是了,有必要这么生气吗?再说你小侄毕竟缺少社会经验,容易轻信。
  不熟的人直接拉黑,不过我也不会和这么傻逼的人熟哈哈
  我会发啊。但是会把不转发就怎样怎样的删除掉,嘿嘿。
  忽略,虽然心理隔应,但是不相信
  无视  
  大学时候收到过,谁发给我加个0再发回给谁,或者直接删了。
  反弹~
  看过就没了。这破玩意我不信
  没理过
  无视  
  直接举报了  
  @东方神鱼
23:22:00  把头发转几下就行了啊。  —————————————————  哈哈,??  
  绝交。这种脑残型不需要结交  
  谁发给我我就转发回去,就转他一人,隔应死他  
  还有那种几百年不联系的同事。。时不时就群发一条“亲爱的朋友圈第一条帮我点赞balabala。。”真的很烦人啊。。。难得一次就算了。。就有那么几个人时不时会群发一下。。我有时候真想回“点你MB点”  
  还以为是老贴,现在还流行这个啊  
  没转过,咋也没咋地。  
  管他呢,收到這樣的我從來都不理,他要真說的這麼准,我下次讓他說我升官發財一生平安啥的是不是也行啊  
  我经常收到来着同一个人的 如果你不转发12次爸爸/妈妈就会怎么怎么样 的消息。  然后我就转发给他本人12次。  
  这种我都当没看见,不过我朋友圈发这些的很少  
  以前收到过,直接改成给无数人转发,在发给发这信息的人  
  不理,拉黑,这种人很烦。  
  就是不转 爱咋咋地  
  是我心大吗?我常常是无视,这种小事是有点膈应,但没到要生气或找人撕逼那个程度。  
  跟他们说再发这种傻逼信息死一户口本  
  我从来都是无视!!  
  我都是看完呵呵哒。删除了事。现在看来我白被诅咒那么多回了。  
  从来不搭理……因为相信傻逼的话就是承认自己傻逼了  
  屏蔽或者拉黑。
  @didadida_2016   惹得起的我会叫对方不要发这种东西给我,比如朋友亲戚,惹不起的比如我妈的朋友,长辈....就直接删掉。
  我就加上不得回发四个字,转发给发给我的人,要求发几次我就发几次,然后拉黑,这种人实在太贱。特别是什么不发父母怎么怎么的,明明不信这套不发又膈应  
  这种问都不看,直接删除。从来不转发恶心别人。要不你就再转发给她若干次。
  不转不是中国人,等了好多年了也没见美帝有人给我送绿卡
  不转发就倒霉。已转。
请遵守言论规则,不得违反国家法律法规回复(Ctrl+Enter)ESFramework 开发手册(01) -- 发送和处理信息 - 傲瑞科技 - 官方博客
&&&&&&本文介绍一文中提到的四大武器的第一个:发送和处理自定义信息。
&&&&& 使用通信框架最基础的需求就是收发信息,ESFramework底层已经为我们封装好了所有与信息收发相关的操作,我们只要调用ESPlus.Application.CustomizeInfo命名空间下的相关组件的API来发送信息,以及实现对应的处理器接口来处理收到的信息就可以了。&&
一.客户端发送信息&&
&&&&&& 客户端可以发送信息给服务端,也可以发送信息给其他在线用户。
&&&&& 客户端通过ESPlus.Application.CustomizeInfo.Passive.接口提供的方法来发送信息。
&&&&& 我们可以从ESPlus.Rapid.IRapidPassiveEngine暴露的CustomizeOutter属性来获取ICustomizeOutter引用。&& &
public interface ICustomizeOutter
/// &summary&
/// 向服务器发送信息。
/// &/summary&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void Send(int informationType, byte[] info);
/// &summary&
/// 向在线用户targetUserID发送信息。
/// &/summary&
/// &param name=&targetUserID&&接收消息的目标用户ID&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void Send(string targetUserID, int informationType, byte[] info);
/// &summary&
/// 向服务器提交请求信息,并返回服务器的应答信息。如果超时没有应答则将抛出Timeout异常。
/// &/summary&
/// &param name=&informationType&&自定义请求信息的类型&/param&
/// &param name=&info&&请求信息&/param&
/// &returns&服务器的应答信息&/returns&
byte[] Query(int informationType, byte[] info);
/// &summary&
/// 向在线用户或服务器发送信息。
/// &/summary&
/// &param name=&targetUserID&&接收消息的目标用户ID。如果为null,表示接收者为服务器。&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&post&&是否采用Post模式发送消息&/param&
/// &param name=&action&&当通道繁忙时所采取的动作&/param&
void Send(string targetUserID, int informationType, byte[] info, bool post, ActionTypeOnChannelIsBusy action);
/// &summary&
/// 通过可靠的P2P通道向在线用户targetUserID发送信息。
/// &/summary&
/// &param name=&targetUserID&&接收消息的目标用户ID,不能为null。&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
/// &param name=&actionType&&当P2P通道不存在时,采取的操作&/param&
/// &param name=&post&&是否采用Post模式发送消息&/param&
/// &param name=&action&&当通道繁忙时所采取的动作&/param&
void SendByP2PChannel(string targetUserID, int informationType, byte[] info, ActionTypeOnNoP2PChannel actionType,
bool post, ActionTypeOnChannelIsBusy action);
/// &summary&
/// 即使与目标用户之间有可靠的P2P通道存在,也要通过服务器转发信息。
/// &/summary&
/// &param name=&targetUserID&&接收消息的目标用户ID,不能为null。&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void TransferByServer(string targetUserID, int informationType, byte[] info );
/// &summary&
/// 向在线用户或服务器发送信息,并等待其ACK。当前调用线程会一直阻塞,直到收到ACK;如果超时都没有收到ACK,则将抛出TimeoutException。
/// &/summary&
/// &param name=&targetUserID&&接收消息的目标用户ID。如果为null,表示信息接收者为服务端。&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void SendCertainly(string targetUserID, int informationType, byte[] info);
/// &summary&
/// 向在线用户或服务器发送大的数据块信息。直到数据发送完毕,该方法才会返回。如果担心长时间阻塞调用线程,可考虑异步调用本方法。
/// &/summary&
/// &param name=&targetUserID&&接收消息的目标用户ID。如果为null,表示接收者为服务器。&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&blobInfo&&大的数据块信息&/param&
/// &param name=&fragmentSize&&分片传递时,片段的大小&/param&
void SendBlob(string targetUserID, int informationType, byte[] blobInfo
,int fragmentSize);
/// &summary&
/// 向在线目标用户或服务器提交请求信息,并返回应答信息。如果目标用户不在线,或超时没有应答则将抛出TimeoutException。
/// 如果对方在处理请求时出现未捕获的异常,则该调用会抛出HandingException。
/// &/summary&
/// &param name=&targetUserID&&接收并处理请求消息的目标用户ID。如果为null,表示信息接收者为服务端。&/param&
/// &param name=&informationType&&自定义请求信息的类型&/param&
/// &param name=&info&&请求信息&/param&
/// &returns&应答信息&/returns&
byte[] Query(string targetUserID, int informationType, byte[] info);
/// &summary&
/// 回复异步调用。向在线目标用户或服务器提交请求信息,当收到应答信息或超时时,将回调CallbackHandler函数。
/// &/summary&
/// &param name=&targetUserID&&接收并处理请求消息的目标用户ID。如果为null,表示信息接收者为服务端。&/param&
/// &param name=&informationType&&自定义请求信息的类型&/param&
/// &param name=&info&&请求信息&/param&
/// &param name=&handler&&用于处理回复信息的处理器&/param&
/// &param name=&tag&&携带的状态数据,将被传递给回调函数handler&/param&
void Query(string targetUserID, int informationType, byte[] info, CallbackHandler handler, object tag);
/// &summary&
/// 用于处理回复信息的方法委托。
/// &/summary&
/// &param name=&ee&&如果为TimeoutException,表示超时没有回;如果为HandingException,表示处理方在处理时抛出异常。只有为null时,response参数才有效。&/param&
/// &param name=&response&&回复消息&/param&
/// &param name=&tag&&状态数据&/param&
public delegate void CallbackHandler(Exception ee, byte[] response, object tag);
发送信息有几种方式:
1. 普通发送:
&&&&& 调用Send方法进行普通发送,即将信息写入网络流后就立即返回。
&&&&& Send方法的重载有个ActionTypeOnChannelIsBusy参数,用于指示当通道繁忙时所采取的动作:继续发送、或丢弃数据。在某些系统中,对于一些非重要非紧急信息的发送,可以为ActionTypeOnChannelIsBusy参数传入枚举值Discard(丢弃)。
2. 带ACK机制的发送:
&&&&&&& 调用SendCertainly方法发送信息时会启用ACK机制,即将信息发送出去后,调用并不返回,而是要等到接收方的ACK后,才返回。如果接收方不在线,SendCertainly调用会在阻塞一段时间后(默认为30秒),抛出超时异常。
&&&&&& ACK机制是由ESFramework底层实现的,我们直接使用,不需要做任何额外的其它工作。关于带ACK机制的信息发送的更多内容可以参见。
3. 信息同步调用:
&&&&&& 调用Query方法可以发送请求信息,并返回接收方处理请求后的应答信息。就像方法调用一样 - - 使用参数调用方法并返回结果。从Query方法的重载看到,信息同步调用的对象既可以是服务端、也可以是另外一个在线客户端。关于信息同步调用的更多内容可以参见。
4. 回复异步调用:
&&&&&& 重载的Query方法(带有CallbackHandler参数的)在发送请求信息后,不会阻塞而继续向下执行,而框架在收到对应的回复信息时,会回调CallbackHandler委托指向的方法。由于调用线程与回复回调的线程不是同一个线程,所以称这种机制为回复异步调用。
5. 使用P2P通道发送:
&&&&&& 调用SendByP2PChannel方法可以明确指定使用P2P通道进行发送,这是一种普通发送。如果与接收者之间的P2P通道不存在,则由ActionTypeOnNoP2PChannel参数指示如何动作:使用服务器转发、或者丢弃信息。关于P2P通道的更多内容可参考。
6. 强制经过服务器转发:
&&&&&& 对于某些类型的P2P信息,我们可能想在服务端监控它,如果这些信息还是经过P2P通道发送的话,那么服务端将捕获不到这些信息。TransferByServer方法用于解决这一问题。如果调用TransferByServer方法发送信息,那么即使有可靠的P2P通道存在,信息仍然会经过服务器中转。
7. 发送大数据块:
&&&&& 调用SendBlob方法可以将大数据块信息(比如一张大图片)发送给服务端或任何其他的在线用户。&关于大数据块的更多内容,可以参考。&
二.服务端发送信息
&&&&&&& 服务端可以通过ESPlus.Application.CustomizeInfo.Server.接口向客户端发送信息和广播、以及同步调用客户端。
&&&&&& 我们可以从ESPlus.Rapid.IRapidServerEngine暴露的CustomizeController属性来获取ICustomizeController引用。&
public interface ICustomizeController
/// &summary&
/// 当因为目标用户不在线而导致服务端转发自定义信息失败时,将触发该事件。参数为转发失败的信息。
/// &/summary&
event CbGeneric&Information& TransmitF
/// &summary&
/// 向ID为userID的在线用户发送信息。如果用户不在线,则直接返回。
/// &/summary&
/// &param name=&userID&&接收消息的用户ID&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void Send(string userID, int informationType, byte[] info);
/// &summary&
/// 向当前AS上的在线用户发送信息,并等待其ACK。当前调用线程会一直阻塞,直到收到ACK;如果超时都没有收到ACK,则将抛出Timeout异常。
/// &/summary&
/// &param name=&userID&&接收消息的用户ID&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void SendCertainlyToLocalClient(string userID, int informationType, byte[] info);
/// &summary&
/// 向ID为userID的在线用户发送信息。如果用户不在线,则直接返回。
/// &/summary&
/// &param name=&userID&&接收消息的用户ID&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
/// &param name=&post&&是否采用Post模式发送消息&/param&
/// &param name=&action&&当通道繁忙时所采取的动作&/param&
void Send(string userID, int informationType, byte[] info ,bool post ,ActionTypeOnChannelIsBusy action);
/// &summary&
/// 向ID为userID的在线用户发送大数据块信息。直到数据发送完毕,该方法才会返回。如果担心长时间阻塞
用线程,可考虑异步调用本方法。
/// &/summary&
/// &param name=&userID&&接收消息的用户ID&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&blobInfo&&大数据块信息&/param&
/// &param name=&fragmentSize&&分片传递时,片段的大小&/param&
void SendBlob(string userID, int informationType, byte[] blobInfo, int fragmentSize);
/// &summary&
/// 询问当前AS的在线用户,并返回应答信息。如果超时没有应答则将抛出Timeout异常。如果客户端在处理请求时出现未捕获的异常,则该调用会抛出HandingException。
/// &/summary&
/// &param name=&userID&&接收并处理服务器询问的目标用户ID&/param&
/// &param name=&informationType&&自定义请求信息的类型&/param&
/// &param name=&info&&请求信息&/param&
/// &returns&客户端给出的应答信息&/returns&
byte[] QueryLocalClient(string userID, int informationType, byte[] info);
&&&&&& 各个方法含义几乎与客户端是一致的。ICustomizeController接口还暴露了TransmitFailed事件,我们可以通过预定该事件来监控那些转发失败的信息。
&&&&&& SendCertainlyToLocalClient方法和QueryLocalClient方法的名称都以结尾,其在ESPlatform群集平台中就会显示其特别的含义 - - 这两个方法只能针对连接到当前服务端的客户端进行调用。而其它的几个方法,则是可以将信息发送给任何在线用户的,即使该用户位于群集中的其它应用服务器上。&&
三.处理信息
&&&&&& 客户端可以收到来自其它客户端或服务端的信息、大数据块、以及同步调用。服务端也可以收到来自客户端的信息(转发的信息除外)及同步调用。那么,我们如何处理这些接收到的信息了?
&&&&&& 无论是服务端,还是客户端,都只要实现ESPlus.Application.CustomizeInfo.接口即可。&
public interface ICustomizeHandler
/// &summary&
/// 处理接收到的信息(包括大数据块信息)。
/// &/summary&
/// &param name=&sourceUserID&&发出信息的用户ID。如果为null,表示信息来自服务端。&/param&
/// &param name=&informationType&&自定义信息类型&/param&
/// &param name=&info&&信息&/param&
void HandleInformation(string sourceUserID, int informationType, byte[] info);
/// &summary&
/// 处理接收到的请求并返回应答信息。
/// &/summary&
/// &param name=&sourceUserID&&发送请求信息的用户ID。如果为null,表示信息来自服务端。&/param&
/// &param name=&informationType&&自定义请求信息的类型&/param&
/// &param name=&info&&请求信息&/param&
/// &returns&应答信息&/returns&
byte[] HandleQuery(string sourceUserID, int informationType, byte[] info);
(1)凡是sourceUserID参数为null的,都表示被处理的信息是来自服务端的;否则,表示被处理的信息是由其它在线客户端发出的。
(2)ICustomizeHandler 即用于客户端、也用于服务端。如果是用于服务端,则方法的第一个参数sourceUserID是绝对不会为null的。
(4)在客户端,将ICustomizeHandler的实现类的实例传递给ESPlus.Rapid.IRapidPassiveEngine的Initialize方法以挂接到框架;
&&&&&&&& 在服务端,则将ICustomizeHandler的实现类的实例传递给ESPlus.Rapid.IRapidServerEngine的Initialize方法以挂接到框架。&
四.更多说明&
1. 信息发送模型
&&&&&& 信息发送可以使用同步模型或异步模型,在方法中通过bool型post参数体现出来。如果其值为true,表示使用异步模型(即发送方法的调用立即返回,不用等到信息发送完毕);否则使用同步模型(阻塞调用线程,直到信息发送完毕)。
2. 信息处理
&&&&&&客户端和服务端的ICustomizeHandler,我们称之为自定义信息处理器,或者业务处理器,表示其用于处理我们应用系统的具体业务逻辑。
(1)业务处理器将在后台线程中被调用,所以,实现业务处理器的方法中如果涉及到了UI操作,则必须将调用转发到UI线程。
(2)业务处理器的方法必须尽可能快地返回,否则,将不能及时地处理后续的消息。如果某个业务处理方法非常耗时,可以考虑使用异步方式。
3. 大数据块
&&&&&&当发送大数据块时,发送方会将其拆分为许多连续的片段逐个发送,而在接收方会自动将接收到的片段重组起来构成一个完整的信息。而且无论是发送大数据块,还是普通信息,在接收方都是调用相同的方法(ICustomizeHandler的HandleInformation方法)来处理的。&&&&&&
五.另一套消息收发机制
除了通过Customize空间发送消息和处理消息外,ESFramework的最新版本增加了另一套收发消息的机制 --
直接通过引擎接口收发消息。
&&&&& 与Customize机制的区别在于,通过引擎接口发送的消息,,而不是回调Handler接口。这两套机制是相互独立的,不会相互影响。下面我们把引擎接口中与消息收发相关的API摘出来:
public interface IRapidPassiveEngine
/// &summary&
/// 当接收到来自服务器或其它用户的消息时,触发此事件。
/// 事件参数:sourceUserID - informationType - message - tag 。
/// 如果消息来自服务器,则sourceUserID为null。
/// &/summary&
event CbGeneric&string, int, byte[], string& MessageR
/// &summary&
/// 向服务器或其它在线用户发送消息。如果其它用户不在线,消息将被丢弃。
/// &/summary&
/// &param name="targetUserID"&接收者的UserID,如果为服务器,则传入null&/param&
/// &param name="informationType"&消息类型&/param&
/// &param name="message"&消息内容&/param&
/// &param name="tag"&附加内容&/param&
void SendMessage(string targetUserID, int informationType, byte[] message, string tag);
/// &summary&
/// 向服务器或其它在线用户发送消息。如果其它用户不在线,消息将被丢弃。
/// &/summary&
/// &param name="targetUserID"&接收者的UserID,如果为服务器,则传入null&/param&
/// &param name="informationType"&消息类型&/param&
/// &param name="message"&消息内容&/param&
/// &param name="tag"&附加内容&/param&
/// &param name="fragmentSize"&消息将被分块发送,分块的大小&/param&
void SendMessage(string targetUserID, int informationType, byte[] message, string tag , int fragmentSize);
/// &summary&
/// 向服务器或其它在线用户异步发送消息(当前调用线程立即返回)。如果其它用户不在线,消息将被丢弃。
/// &/summary&
/// &param name="targetUserID"&接收者的UserID,如果为服务器,则传入null&/param&
/// &param name="informationType"&消息类型&/param&
/// &param name="message"&消息内容&/param&
/// &param name="tag"&附加内容&/param&
/// &param name="fragmentSize"&消息将被分块发送,分块的大小&/param&
/// &param name="handler"&当发送任务结束时,将回调该处理器&/param&
/// &param name="handlerTag"&将回传给ResultHandler的参数&/param&
void SendMessage(string targetUserID, int informationType, byte[] message, string tag, int fragmentSize, ResultHandler handler,
object handlerTag);}
public interface IRapidServerEngine
/// &summary&
/// 当接收到来自客户端的消息时,触发此事件。
/// 事件参数:sourceUserID - informationType - message - tag 。
/// &/summary&
event CbGeneric&string, int, byte[], string& MessageR
/// &summary&
/// 向在线用户发送消息。如果目标用户不在线,消息将被丢弃。
/// &/summary&
/// &param name="targetUserID"&接收者的UserID&/param&
/// &param name="informationType"&消息类型&/param&
/// &param name="message"&消息内容&/param&
/// &param name="tag"&附加内容&/param&
void SendMessage(string targetUserID, int informationType, byte[] message, string tag);
/// &summary&
/// 向在线用户发送消息。如果目标用户不在线,消息将被丢弃。
/// &/summary&
/// &param name="targetUserID"&接收者的UserID&/param&
/// &param name="informationType"&消息类型&/param&
/// &param name="message"&消息内容&/param&
/// &param name="tag"&附加内容&/param&
/// &param name="fragmentSize"&消息将被分块发送,分块的大小&/param&
void SendMessage(string targetUserID, int informationType, byte[] message, string tag, int fragmentSize);
&&&&& 比如,客户端通过IRapidPassiveEngine的SendMessage方法发送消息给服务端,则服务端的IRapidServerEngine将触发MessageReceived事件。预定MessageReceived事件,我们就可以处理接收到的消息。
&&&&& 在实际使用时,究竟该使用哪种机制比较好了?
我们的建议是,以Customize机制为主,以引擎直接收发消息机制为辅助。在Customize机制中,通过实现处理器接口,我们可以将所有的消息处理集中到一个Handler类中;而如果使用引擎直接收发消息的机制,则在很多地方都可以预定MessageReceived事件,使得消息处理的代码分散在不同的地方。
-----------------------------------------------------------------------------------------------------------------------------------------------& &
电话:027-

我要回帖

更多关于 短信转发app 的文章

 

随机推荐