帮酷LOGO
0 0 评论
文章标签:soc  COM  COMM  通讯  Cordova  network  plugin  socket  
Cordova plugin for socket network communication

  • 源代码名称:sockets-for-cordova
  • 源代码网址:http://www.github.com/blocshop/sockets-for-cordova
  • sockets-for-cordova源代码文档
  • sockets-for-cordova源代码下载
  • Git URL:
    git://www.github.com/blocshop/sockets-for-cordova.git
  • Git Clone代码到本地:
    git clone http://www.github.com/blocshop/sockets-for-cordova
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/blocshop/sockets-for-cordova
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • sockets-for-cordova

    这个Cordova插件提供了JavaScript API,允许你通过TCP协议与服务器通信。

    目前我们支持这些平台: iOS、Android、WP8.

    你也可以从我们的博客中获取这个插件的信息http://www.blocshop.cz/blog/?p=6

    安装

    安装此插件仅需:

    cordova plugin add cz.blocshop.socketsforcordova

    或者你可以使用GIT存储库进行最新版本:

    cordova plugin add https://github.com/blocshop/sockets-for-cordova

    例子用法

    这是一个简单的示例,说明如何连接到远程服务器,使用数据,关闭连接。

    创建套接字类型的实例:

    
    var socket = new Socket();
    
    
    
    

    设置数据使用者,错误和关闭处理程序:

    
    socket.onData = function(data) {
    
    
     // invoked after new batch of data is received (typed array of bytes Uint8Array)
    
    
    };
    
    
    socket.onError = function(errorMessage) {
    
    
     // invoked after error occurs during connection
    
    
    };
    
    
    socket.onClose = function(hasError) {
    
    
     // invoked after connection close
    
    
    };
    
    
    
    

    使用端口1234连接到服务器someremoteserver.com:

    
    socket.open(
    
    
    "someremoteserver.com",
    
    
     1234,
    
    
     function() {
    
    
     // invoked after successful opening of socket
    
    
     },
    
    
     function(errorMessage) {
    
    
     // invoked after unsuccessful opening of socket
    
    
     });
    
    
    
    

    将"Hello World"发送到服务器:

    
    var dataString ="Hello world";
    
    
    var data = new Uint8Array(dataString.length);
    
    
    for (var i = 0; i < data.length; i++) {
    
    
     data[i] = dataString.charCodeAt(i);
    
    
    }
    
    
    socket.write(data);
    
    
    
    

    通过将FIN发送到服务器,以优雅方式关闭连接:

    
    socket.shutdownWrite(); 
    
    
    
    

    或立即关闭连接:

     
    socket.close();
    
    
    
     

    API

    事件处理程序

    onData: (data: Uint8Array) => void

    客户端接收新一批数据后调用,数据的表示形式为字节数组(Uint8Array )。

    onClose: (hasError: boolean) => void

    连接关闭后调用,在调用此处理程序后释放本机资源,参数hasError指示由于某些错误而关闭连接的结果。

    onError: (message: string) => void

    在连接期间发生某些错误时调用。

    属性

    state: Socket.State

    提供套接字的状态。 它可以包含由Socket.State枚举表示的4值

    • Socket.State.CLOSED
    • Socket.State.OPENING
    • Socket.State.OPENED
    • Socket.State.CLOSING

    套接字的初始状态已关闭,调用open方法将状态更改为打开,如果它被成功打开,它将进入打开状态,如果打开失败,则返回关闭状态,调用close方法后,套接字立即进入关闭状态,关闭套接字时,(由服务器或调用close方法)将进入关闭状态。

    例子

    检查套接字是否已连接:

    
    if (socket.state == Socket.State.OPENED) {
    
    
     console.log("Socket is opened");
    
    
    }
    
    
    
    

    方法

    open(host, port, onSuccess?, onError?): void

    远程主机建立连接。

    参数类型说明
    hoststring 远程主机/ip地址
    portnumber Tcp端口号
    onSuccess()=> void 成功回调-在成功连接到远程主机后,调用,(可选)
    onError(message: string) => void 错误回调-在连接到远程主机时发生某些错误时调用,(可选)
    write(data, onSuccess?, onError?): void

    将数据发送到远程主机。

    参数类型说明
    dataUint8Array 输入的字节数组,将写入输出流,
    onSuccess()=> void 成功回调-在数据成功写入输出流之后调用,(可选)
    onError(message: string) => void 错误回调-在将数据写入输出流时发生某些错误时调用,(可选)
    shutdownWrite(onSuccess?, onError?): void

    FIN发送到远程主机并完成数据发送,调用shutdownWrite后,不能调用write方法,否则将调用onError回调(write方法)。

    参数类型说明
    onSuccess()=> void 成功回调-完成数据发送后调用,(可选)
    onError(message: string) => void 错误回调-在此过程中发生某些错误时调用,(可选)
    close(onSuccess?, onError?): void

    关闭连接,成功关闭连接时调用onClose事件处理程序。

    参数类型说明
    onSuccess()=> void 成功关闭连接后调用的成功回调,onClose事件处理程序在回调之前调用,(可选)
    onError(message: string) => void 错误回调,在此过程中发生某些错误时调用,(可选)

    BSD许可证

    Copyright (c) 2015 ,blocshop s.r.o .



    文章标签:COM  plugin  COMM  network  soc  socket  Cordova  通讯  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语