Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

onstream problem on Android

$
0
0

Hi experts, I used createHTTPClient and it worked for iOS but Android version ondatastream does not work only onload function works. Here is the short version of the code that I use.

var opensession = Ti.Network.createHTTPClient({
        onload : function() {
 
        },
        ondatastream : function(e) {
 
                pingItems = opensession.responseText;
                var itemsArray = pingItems.split('\n');
                for (var i = 0; i < itemsArray.length - 1; i++) {
                    itemsArray[i] = JSON.parse(itemsArray[i]);
                    T.API.info(itemsArray[i]);
                }
 
 
            }
        },
        onerror : function(e) {
 
        },
        timeout : Alloy.Globals.timeOut
    });
    opensession.open("GET", "https://www.example.com:446/" + 'openSession');
    opensession.send();
}
I have tried tcp sockets but got no buffer error. Is there anything that I can do for createHTTPClient to make it work ondatastream on Android version? Or how could I wrote equivalent socket code? as I get buffer error now.
var socket = Ti.Network.Socket.createTCP({
    host: 'www.example.com', 
    port: 446,
    mode: Titanium.Network.READ_WRITE_MODE,
 
    connected: function (e) {
 
        Ti.API.info('Socket connected!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
 
 
 
        Ti.Stream.write(socket, Ti.createBuffer({
 
            value: 'GET https://www.example.com:446/openSession '
 
        }), writeCallback);
 
 
       Ti.Stream.pump(e.socket, readCallback, 1024, true);
 
 
    },
 
        error: function (e) {
 
        Ti.API.info(' Error  (' + e.errorCode + '): ' + e.error  );
 
 
    },
 
});
 
 
socket.connect();
 
 
function writeCallback(e) {
 
    Ti.API.info('Successfully wrote to socket.'  );
 
 
}
 
 
 
function readCallback(e) {
 
    if (e.bytesProcessed == -1)
 
    {
 
        // Error / EOF on socket. Do any cleanup here.
 
 
 
    }
 
    try {
 
        if(e.buffer) {
 
            var received = e.buffer.toString();
 
            Ti.API.info('Received: ' + received);
 
        } else {
 
            Ti.API.error('Error: read callback called with no buffer!');
 
        }
 
    } catch (ex) {
 
        Ti.API.error(ex);
 
    }
 
}
I have only changed client URL to www.example.com.

I am using 3.4.0.GA version of Titanium SDK


Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>