Javascript Cordova:通过TCP发送数据

Javascript Cordova:通过TCP发送数据,javascript,android,sockets,cordova,tcp,Javascript,Android,Sockets,Cordova,Tcp,我试图在用Cordova创建的Android应用程序和运行在Windows机器上的应用程序之间发送数据;Windows计算机上的应用程序需要TCP协议。我以前使用过Cordova,但我没有为Cordova使用过很多插件,因此我在设置插件时遇到了困难,套接字编程对我来说并不熟悉 不管怎么说,我读到我可以在某个地方将chrome.socket与Cordova一起使用,所以我尝试过这样做,但我只收到错误,表明“chrome”未定义 我首先通过命令行安装了插件:cordovapluginaddorg.c

我试图在用Cordova创建的Android应用程序和运行在Windows机器上的应用程序之间发送数据;Windows计算机上的应用程序需要TCP协议。我以前使用过Cordova,但我没有为Cordova使用过很多插件,因此我在设置插件时遇到了困难,套接字编程对我来说并不熟悉

不管怎么说,我读到我可以在某个地方将chrome.socket与Cordova一起使用,所以我尝试过这样做,但我只收到错误,表明“chrome”未定义

我首先通过命令行安装了插件:cordovapluginaddorg.chromium.socket

然后它出现在我的Cordova应用程序的插件目录中

然后,我在应用程序中包含以下代码:

var dataString = "Message to send";
var data = new Uint8Array(dataString.length);
for (var i = 0; i < data.length; i++) {
     data[i] = dataString.charCodeAt(i);
}

try {        
    chrome.socket.create("tcp", function(createInfo) {
        var socketId = createInfo.socketId;
        try {
            chrome.socket.connect(socketId, hostname, port, function(result) {
                if (result === 0) {
                    chrome.socket.write(socketId, data, function(writeInfo) {
                        chrome.socket.read(socketId, 1000, function(readInfo) {
                        });
                    });
                }
                else
                {
                    alert("CONNECT FAILED");
                }
            });
        }
        catch (err)
        {
            alert("ERROR! " + err);
        }
    });
}
catch (err)
{
    alert("ERROR! " + err);
}
var dataString=“要发送的消息”;
var数据=新的Uint8Array(dataString.length);
对于(变量i=0;i

我每次都会收到错误警报,因为chrome.socket未定义;这让我觉得我没有正确设置。无论如何,如果您有任何建议,我将不胜感激。

因为,我看不到代码有任何直接的问题。你能试试下面的吗?如果你将主机名设置为www.google.com,端口设置为80或443,会发生什么?另外,windows应用程序的名称/性质是什么?你能确保你能从外部机器上用netcat或类似的工具连接到tcp端口吗?我明天第一件事就是试试。但是,问题不是连接到TCP端口——如果我尝试通过其他非Cordova应用程序发送数据,连接运行得很好——问题是我遇到了“函数创建未定义”错误。应用程序似乎无法识别chrome.socket/它没有正确导入(即使我是通过编写的命令行语句安装的)。@JoshuaJennings为什么不试试呢。使用起来并不困难,您也不需要任何套接字编程知识。仅供参考所有HTTP请求方法(POST、GET)在内部使用TCP协议作为其传输机制。@JoshuaJennings根据我的理解,您需要配置您的Web服务器来处理chrome套接字(chrome.sockets.tcpServer)。在你的phonegap/cordova应用程序中只添加客户端,你的代码将不起作用。问题是我正在使用接收机器上现有的专有软件;它的文档说明它只需要通过TCP协议和特定端口接收消息。我知道双方都需要正确配置才能工作,但正如我所提到的,我认为最直接的问题是库/插件没有被识别(我之前也尝试过实现socket.io,它的工具也没有被识别)。我想我需要一个有凝聚力的指南来使用这些工具进行设置。