Отправить строку в сокет TCP, используя GapSocket - PullRequest
0 голосов
/ 13 октября 2011

Я пытаюсь установить соединение через сокет, используя GapSocket и отправить некоторые данные (строки) в сокет tcp из PhoneGap на компьютер с открытым портом 8888. Я включил все зависимости:

  1. И asyncsocket.m, и asynsocket.h из cocoaasyncsocket
  2. И GapSocketCommand.m, и GapSocketCommand.h из GapSocket
  3. Включает GapSocket.js и ссылается на файл js из index.html в папке www.

Ниже приведен мой файл index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Socket Test</title>
    <script type="text/javascript" charset="utf-8" src="phonegap-1.1.0.js"></script>
    <script type="text/javascript">
        document.addEventListener("deviceready", function(){
            var mySocket = new GapSocket(127.0.0.1, 8888);
            mySocket.onopen = function(){ alert("Socket opened."); };
            mySocket.send("some data here");
        }, false);
     </script>
    </head>
<body>
</body>

Он компилируется нормально, не выдает никаких ошибок зависимости и может работать на iOS Simulator. Перед запуском я открыл порт 8888 на 127.0.0.1 (машина, на которой работает симулятор), используя:

nc -l 127.0.0.1 8888

Я могу подключить открытый порт и отправить данные с помощью telnet:

telnet 127.0.0.1 8888

с отправкой следующих данных:

eddy-2:~ eddy$ telnet 127.0.0.1 8888
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
test
test

Возвращаясь к iOS Simulator, он работает, но ничего не отправляет, и я не уверен, что делаю правильный способ инициализации сокета (я новичок в PhoneGap и Xcode). Я следовал инструкциям в файле readme, но он не дает большого контекста.

Ответы [ 2 ]

3 голосов
/ 11 октября 2012

вам нужно включить запись в плагин cordova.plist со строкой GapSocketCommand и значением

1 голос
/ 09 декабря 2011

Две вещи не так:

  • Для начала необходимо указать IP-адрес в кавычках.
  • Во-вторых, вам нужно использовать IP-адрес вашего компьютера, на котором работает netcat (127.0.0.1 - это IP-адрес самого симулятора; вы должны быть в состоянии узнать свой IP-адрес, используя ifconfig или аналогичный).

В качестве примера это должно выглядеть примерно так:

var mySocket = new GapSocket("192.168.0.100", 8888);

Также не забудьте зарегистрировать плагин в PhoneGap.plist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...