0 0

怎样编写skype plugin啊? 插件上显示好友列表5

怎样编写skype plugin啊? 插件上显示好友列表

用skype4java,哪里有代码啊?
iOS 
2009年4月11日 12:41

1个答案 按时间排序 按投票排序

0 0

Skype4Java架构

      Skype4Java提供了一个较为完善的开发体系,使您可以非常容易地使用Java


开发Skype外壳程序。Skype插件程序与Skype的通信都是基于一些文本命令来完


成。

 

   因此,要想开发Skype的插件应用,就需要依靠不同操作系统平台的系统调


用,发送Skype平台的相应命令来实现。

  

   Skype4Java在最底层,也是通过操作系统的系统调用来完成消息的发送。针对


异构平台,Skype4Java提供了不同平台的底层实现,而Skype4Java的使用者不用


管具体的操作系统平台。因为抽象父类Connector类的静态方法getInstance()具体


判断当前操作系统是什么平台,采用简单的工厂模式,返回相应平台的子类对象,


如OSXConnector.,LinuxConnector, WindowsConnector, Win32Connector等,这


些都是Connector类的子类。Connector及其子类即实现了一些系统调用的方法,其

中被重载的一系列execute()方法最终调用不同子类的sendCommand (String

command)方法来实现了不同平台的消息发送。

  

    而对于一些数据的接收和处理全局都是采用事件监听的机制(观察者模式),

用于完成数据的接收,处理机制的调用,错误的处理等Skype平台利用错误消息机

制提供了出错的处理。因此,在我们的错误处理中,只需分析错误消息的内容,然

后通过观察者调用相应的处理机制即可。

   

    Skype4Java的实现是按照分层的方法来设计的,       



Ø         Skype4Java命令发送示例

Skype提供了几种形式的开发接口给不同的语言,但有一个共同点就是,都是通过相同的命令(命令由命令标识符来标识,主要是在确认一个详细的请求命令以及响应消息时用的,每个命令及响应的消息ID是一样的,而且是唯一的),通过这样的方式来操作Skype。对于Skype4Java来说,命令的发送都是通过执行SKYPE4Java的抽象连接层(详细说明见后面),其中有一个核心类Connector的核心方法,原型为protected final String execute(final String command, final String[] responseHeaders, final boolean checkAttached),这个方法体里包含了保证与SKYPE处于连接状态,如果没连接会连接上,并且激发各种事件以及注册对这事件感兴趣的监听器。

public abstract class Connector {

……

protected final String execute(final String command, final String[] responseHeaders, final boolean checkAttached) throws ConnectorException {

    System.out.println("...准备执行命令...");

//先检验这次需要发送的命令,保证不为空

   ConnectorUtils.checkNotNull("command", command);

   ConnectorUtils.checkNotNull("responseHeaders", responseHeaders);

   //输出这次需要发送的命令的有关内容

System.out.println("command: ->"+command);

        if (checkAttached){

//在发送之前得先保证客户端与Skype Client处于连接状态

          assureAttached();

        }

   //共享锁,因为这是一种请求-响应式的交互,正在执行此命令时要锁住程序专门

//处理这个命令的发送

        final Object lock = new Object();

   //命令的响应

        final String[] response = new String[1];

   //连接监听器的定义

        ConnectorListener listener = new AbstractConnectorListener() {

   //当命令发送后(下面的)完释放锁,客户程序将可以处理接收到的命令响应消

//息,查看此命令的执行结果:System.out.println("response: <-"+message);

            public void messageReceived(ConnectorMessageEvent event) {

                String message = event.getMessage();

             System.out.println("response: <-"+message);

                for (String responseHeader : responseHeaders) {

                    if (message.startsWith(responseHeader)) {

                        response[0]=message;

    synchronized (lock) {

                            lock.notify();

                        }

                        return;

                    }

                }

            }

        };





http://www.diybl.com/course/3_program/java/javajs/200797/70049.html


2009年4月15日 22:43

相关推荐

    webplugin 视频插件

    Webplugin视频插件是一款专为增强网页视频播放体验而设计的软件组件。它主要用于解决浏览器对某些特定视频格式不支持的问题,或者提供额外的功能,如高清播放、快进快退、弹幕互动等。在互联网内容日益丰富的今天,...

    TomcatPlugin eclipse插件

    【压缩包子文件的文件名称列表】中的"TomcatPlugin"可能包含了该插件的安装文件、文档、示例或者其他相关资源。通常,这样的压缩包会包含以下内容: 1. **插件安装文件**:如`.jar`或`.zip`格式,用于在Eclipse中...

    大华摄像头直连插件webplugin.exe

    综上所述,大华摄像头直连插件webplugin.exe是一个功能强大的工具,专为实时视频监控和管理设计。它不仅提供基础的视频流控制,还具备截图、录像和缩放等高级功能,并且具有开发扩展性,便于开发者根据需求进行定制...

    NotePad++ 插件 AnalysePlugin

    用户可以通过编写插件脚本或利用NotePad++的其他功能,进一步定制和扩展AnalysePlugin的功能,以满足个性化需求。 6. **易用性**:AnalysePlugin的界面简洁,操作直观,用户无须复杂的配置即可上手使用。这对于那些...

    大华摄像头直连插件webplugin及文档说明 demo

    《大华摄像头直连插件WebPlugin及其文档说明详解》 在现代的监控系统中,摄像头的直连功能显得尤为重要,特别是在远程监控和实时视频流传输的场景下。大华作为国内知名的安防设备提供商,其推出的摄像头直连插件Web...

    Maven使用tomcat8-maven-plugin插件.docx

    Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...

    32个常用Origin.Plugin插件.rar

    这32个常用的Origin.Plugin插件旨在扩展Origin的基本功能,以满足用户在数据分析、图形绘制以及特定任务处理上的需求。以下将详细介绍这些插件可能涉及的知识点: 1. 数据分析:Origin.Plugin中的插件提供了丰富的...

    lombok-plugin插件包

    4. **IDE 支持**:Lombok-plugin 插件使得 IDEA 能够在编辑器中正确显示和处理 Lombok 注解的类。例如,它可以提供代码提示,避免因缺少 getter 或 setter 方法而出现的编译错误。此外,调试时也能正确地看到由 ...

    webplugin.exe插件

    大华摄像头web3.0二次开发 webplugin.exe视频插件。。

    eclipse-scala-plugin插件 测试可用功

    **Eclipse Scala Plugin 插件测试可用功能** Scala是一种强大的静态类型编程语言,它结合了面向对象和函数式编程的特点,被广泛应用于开发高性能、可维护的软件。Eclipse Scala Plugin是Eclipse集成开发环境(IDE)...

    idea-Mybatis-Log-Plugin idea插件

    由于Mybatis Log Plugin现在已经收费了,所以我们...如果你不清楚或者不了解 Mybatis Log Plugin 是什不妨听我解释一下:Mybatis Log Plugin是控制台 sql 打印插件 帮助我们打印sql 更清楚 更清晰的打印执行的sql语句

    idea插件mybatis log plugin

    idea插件 控制台sql idea插件 控制台sql idea插件 控制台sql

    最新Unity插件SteamVR Plugin steamvr-2-8-0.unitypackage

    最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_8_0.unitypackage最新Unity插件SteamVR Plugin steamvr_2_...

    free-mybatis-plugin免费插件

    一款免费的idea插件,实现快速在dao层接口和xml方法之间进行切换,在Settings-&gt;plugins-&gt;install plugin from disk后选择该压缩包 安装重启idea即可

    使用jQuery开发Plugin插件指南

    使用jQuery开发Plugin插件指南

    notepad++的PluginManager插件

    64位的notepad++和部分32位 没有PluginManager插件,所以提供PluginManager.dll下载

    Notepad++ 64位 ComparePlugin 插件下载

    网上资源大多是针对32位的,这里提供一份64位的,实测可用在v7.2.3版本的Notepad++上。把压缩包中ComparePlugin.dll放入Notepad++的安装路径根目录即可。启动Notepad++自动加载该插件。Clt+Alt+C对比当前打开的两个...

    自定义plugin插件实现phonegap与Android交互

    在"自定义plugin插件实现phonegap与Android交互"这个主题中,我们主要关注的是如何通过编写自定义插件来打通JavaScript和Android之间的通信壁垒。在PhoneGap中,Plugin是连接Web层和Native层的桥梁,它们是用Java...

    富文本ueditor的kityformula-plugin公式插件

    5. **kf-icon.png**:这是公式插件的图标文件,通常显示在ueditor的工具栏上,用户可以通过点击这个图标来打开公式编辑对话框。 6. **kityformula**:这个文件或文件夹可能是整个公式插件的核心库,包含了处理公式...

    IDEA插件集合plugin离线包

    IDEA插件集合,提供几个常用的插件,省去下载安装的麻烦,目的只是跟大家提供一个方便. Alibaba Java Coding Guidelines idea-gitignore FindBugs-IDEA-1.0.1 LiveEdit MavenRunHelper MyBatis plugin 3.154 tomcat ...

Global site tag (gtag.js) - Google Analytics