即时通讯客户端AddIn框架1

原创 2004年06月25日 17:34:00

1.Build a root com.Export some Interface;

2.Build a Client Exe to use the Root com;

3.Build a sub com to implement the Interface;

just Test......

content

to be continue.....

概述

       使用COM开发技术,实现即时通讯的AddIn插件,可以在客户端开发完成的情况下,自由的嵌入其他功能,不用做附加的客户端和服务端的源码修改功能。

       主要针对于客户端的P2P(点对点)的模式,可适用于嵌入音频、视频、投票、游戏等等功能。

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

原理

AddIn技术功能的提出:

在主程序开发完成的基础上,自由的添加新功能,甚至还是未知的功能。

 

传统插件技术的不足:

1.  传统的模式是于动态库的形式进行硬升级,如果函数入口变化,必须重新编译主程序。

2.  传统动态库模式,函数入口不变,只能实现一个功能的添加,不同功能共存和自由添加删建较困难。

3.  传统动态库模式开发必须符合c++模式,相对不够灵活,用户自主开发较难

 

大致实现原理:

1.  实现一个Root COM dll,开放需重用的功能接口。

2.  在使用AddIn的主程序中调用Root COM,遍历所有子接口列表,一般存在在特定的注册表项中,并调用相应的功能接口。

3.  发布主程序后,AddIn开发者从Root COM继承,开发新功能的COM dll,并更新Root COM的子接口列表。并实现功能接口。

结构

重点定义Root的可重用功能接口;

1.       封装所有网络传输的功能模块A,其实现方法不包含在本文档结构中,内置AddIn协议。该模块大致提供:

(1).普通函数功能:初始化,发送数据,关闭;

(2).回调功能,接收数据,异常断开;

2.       Root接口中可以直接调用A中所有功能。

目前分成2Root接口,一个用于文件类传输IF,一个用于交互命令类文件传输IC。考虑使用统一Root接口实现。

       3.    由统一的EventSink进行回调

 

 

 

 

Root接口:

 

HRESULT Init( BSTR sid, BSTR Info, [out, retval]long *pRet );

功能描述:           用于初始化Root接口对象。

参数:

sid                 本事务的guid,用于唯一标识。

Info               自定义信息,由用户定制。可使用XML方式。

       pRet               函数返回提示。

                    

HRESULT Close( [out, retval] long *pRet )

功能描述:           用于关闭Root接口对象。

参数:

       pRet               函数返回提示。

 

HRESULT Send( BSTR Info[out, retval] long *pRet )

功能描述:           用于发送信息。

参数:

       info                发送信息的内容。

       pRet               函数返回提示。

 

HRESULT Do( BSTR Info[out, retval] long *pRet )

功能描述:           用于接收到Info消息后的简单处理。

参数:

       info                收到信息的内容。

       pRet               函数返回提示。

Android中开发IM即时通讯功能的方案

最近准备做IM功能,在技术预研当中,其实可行方案还是比较多的,就看怎么选了 1.第三方平台 比如环信,融云,leancloud,容联云等等。直接使用sdk就可以实现了,最简单最直接,而且稳定性已经不错...
  • PK0071
  • PK0071
  • 2016年08月03日 17:37
  • 7043

erlang udp即时通讯服务器开发浅谈(一)

最近在写个udp 即时通讯服务器,虽然还没有
  • yf2800z
  • yf2800z
  • 2014年06月19日 10:54
  • 699

即时通讯三大框架

Android推送方案分析(MQTT/XMPP/GCM) 蜗牛TT 发布于 4个月前,共有 11 条评论 本文主旨在于,对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地...
  • Andy_LTZ
  • Andy_LTZ
  • 2016年01月14日 21:39
  • 1852

android即时通讯研究(逐渐完善中,还很简单)

在android实现了移动通话的项目,使用tcp传送数据。主要是为了学习android基础知识,所以做的比较简单,语音通话的降噪和回音消除都没有做, 有兴趣的朋友可以继续做下去,建议用rtp实现语音传...
  • caizhegnhao
  • caizhegnhao
  • 2014年07月22日 23:57
  • 13035

java领域的即时通信(openfire+spark+smack)

前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。 Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建...
  • qq_26504875
  • qq_26504875
  • 2015年11月15日 11:27
  • 3077

Python 插件(add-in) 基础知识

1)         Python插件为何物 一个插件(add-in)就是一个客户化,比如嵌入到ArcGIS应用程序中的工具条上的一系列工具,这些工具作为ArcGIS标准程序的补充可以为客户完成...
  • jiayp004
  • jiayp004
  • 2013年10月30日 14:48
  • 2906

移动IM开源框架对比

最近在看移动IM相关的资料, 然后发现网上有很多的资料,所以在学习过程中,整理了一些笔记, 供那些 想了解 移动IM的童鞋一些参考。 移动IM技术选型要点 1、协议选型 2、IM 服务器...
  • meegomeego
  • meegomeego
  • 2016年02月18日 16:43
  • 11542

websocket即时通讯java SpringMVC mybatis 后台框架

获取【下载地址】   QQ: 313596790   【免费支持更新】 三大数据库 mysql  oracle  sqlsever   更专业、更强悍、适合不同用户群体 【新录针对本系统的视...
  • yyyuioopp333
  • yyyuioopp333
  • 2016年04月01日 13:36
  • 1104

【C#】23. Excel Addin 开发(1)

入门篇
  • huiwuhuiwu
  • huiwuhuiwu
  • 2015年04月16日 21:59
  • 1446

即时通讯 的Java服务端开发

即时通讯 的Java服务端开发
  • diyu122222
  • diyu122222
  • 2017年06月20日 17:18
  • 516
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:即时通讯客户端AddIn框架1
举报原因:
原因补充:

(最多只允许输入30个字)