Receive

一、Windows接收云端推送消息的方法:

1
2
3
4
// 定义消息接收宏和消息函数
#define WM_USER_MSG_RECEIVE     WM_USER + 1002  // 推送消息接收

afx_msg LRESULT OnMsgReceive(WPARAM w,LPARAM l);// 长连接消息函数
1
2
3
4
// 进行消息映射
BEGIN_MESSAGE_MAP(CdemoDlg, CDialogEx)
    ON_MESSAGE(WM_USER_MSG_RECEIVE,&CdemoDlg::OnMsgReceive)
END_MESSAGE_MAP()
1
2
3
4
5
6
7
// 消息函数
LRESULT CdemoDlg::OnMsgReceive(WPARAM w,LPARAM l)
{
    std::string* strMsg = (std::string*)l;

    return TRUE;
}

二、Linux接收云端推送消息的方法:

1
2
3
4
5
// 定义消息函数
void RecvApiMsg(const char* buff, int len)
{
    printf("接收到api推送消息:%s\n",buff);
}
1
2
3
4
5
6
// 注册消息函数(只需要注册1次, 后者覆盖前者)
bool b = m_client.RegRecvFunc(RecvApiMsg);
if(!b)
    printf("client 注册api推送消息接收函数失败, err:%s\n",m_client.GetLastError().c_str());
else
    printf("client 注册api推送消息接收函数成功\n");

三、Android接收云端推送消息的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 继承并重载消息接收器
import com.bovey.android.MsgRecver;

public class MyMsgRecver extends MsgRecver{
    @Override
    public void RecvMsg(String msg) {
        // TODO Auto-generated method stub
        super.RecvMsg(msg);
       
        Log.v("my recv msg", "msg:"+msg);
    }

    @Override
    public void RecvUpMsg(String msg) {
        // TODO Auto-generated method stub
        super.RecvUpMsg(msg);
       
        Log.v("my recv up msg", "msg:"+msg);
    }

    @Override
    public void RecvDownMsg(String msg) {
        // TODO Auto-generated method stub
        super.RecvDownMsg(msg);
       
        Log.v("my recv down msg", "msg:"+msg);
    }
}
1
2
3
4
5
6
7
// 注册消息接收器(只需要注册1次, 后者覆盖前者)
MyMsgRecver m_msgRecver = new MyMsgRecver();
boolean b = m_client.RegRecver(m_msgRecver);
if(b)
    Log.i("reg ok", "recv:"+out_str.toString());
else
    Log.e("reg fail", "err:"+m_client.GetLastError());

至此,接收云端消息完成,感谢您的查阅,希望可以帮到您。

发表评论

电子邮件地址不会被公开。 必填项已用*标注