testiocpchat这里怎么发送消息给指定用户?

31 views
Skip to first unread message

tiger

unread,
Oct 10, 2009, 12:47:00 AM10/10/09
to spserver

如下可以吗:
假设每个连接有一个socket id,要向这个id发消息,


SP_Message * msg = new SP_Message();
.....
SP_Response * response = new SP_Response( sid );
response->addMessage( msg );


tiger

unread,
Oct 10, 2009, 1:57:49 AM10/10/09
to spserver
哦,大致明白了,发送msg的时候,可以指定 msg->getToList()

lau stephen

unread,
Oct 10, 2009, 2:01:24 AM10/10/09
to spse...@googlegroups.com
是的,正式通过 tolist 来指定接受消息的客户端的。

2009/10/10 tiger <tigers...@gmail.com>:

tiger

unread,
Oct 10, 2009, 2:38:22 AM10/10/09
to spserver

发送的时候,因为有多个SP_ChatHandler,要向tolist 发,还需要先查找相应的SP_ChatHandler吗。
如果没有,response可能还要重构一下。

lau stephen

unread,
Oct 10, 2009, 2:53:22 AM10/10/09
to spse...@googlegroups.com
发送的时候为什么要查找 ChatHandler ?

handle 方法只需要把 response message 添加到 SP_Response 对象中就行了。

2009/10/10 tiger <tigers...@gmail.com>:

tiger

unread,
Oct 10, 2009, 3:05:45 AM10/10/09
to spserver
假设,spserver收到了100个用户连接,然后每个用户发保活包。如果连接1分钟没收到, 就关掉这个连接。然后向其他联系人消息通知。
这是在OnTimer中处理的,这时不在handle函数中,没有SP_Response对象。这时 怎么处理呢?
我看testiocpdispatcher有类似的处理,是不是这两个test结合起来,才能形成一个完整的chat 应用?
我msn: sxc...@hotmail.com
您的联系方式是什么?有时间向您请教。

lau stephen

unread,
Oct 10, 2009, 3:10:26 AM10/10/09
to spse...@googlegroups.com
class SP_ChatHandler : public SP_Handler {
virtual void timeout( SP_Response * response );
};

当某一个连接在规定时间内没有数据的时候,spserver 调用的是上面这个函数。
这个函数是有 response 的。

2009/10/10 tiger <tigers...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages