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