Last active
July 21, 2016 10:20
-
-
Save arkangelx/dec03ebc58406aab55f727ce398514d7 to your computer and use it in GitHub Desktop.
websocket debug
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var express = require('express'); | |
var app = express(); | |
var server = require('http').createServer(app); | |
var io = require('socket.io')(server); | |
var port = process.env.PORT || 3000; | |
server.listen(port, function () { | |
console.log('Server listening at port %d', port); | |
}); | |
app.use(express.static(__dirname + '/public')); | |
//07-20 00:33:00.804 3342-3819/gaming.eatongate.com.kwiffapp.sit.sit I/MainActivityRESPONSE: Log Response for REQUEST :{"message":"session:login","timestamp":1469094661261,"requestId":"bfba6f73-43e6-4db6-a412-908109f1c323","payload":{"id":42}} | |
io.on('connection', function(socket) { | |
socket.on('request', function(data){ | |
var result = { id: 42 } | |
socket.emit('response', { | |
message: data.message | |
, timestamp: Date.now() | |
, requestId: data.id | |
, payload: result | |
}) | |
}) | |
// THIS DOESN'T WORK AT ALL | |
socket.on('command', function(data, callback) { | |
var result = { foo: "bar" } | |
if (callback) { callback(result) } | |
}); | |
//MODIFIED CODE ABOUT SLIGHTLY AND RESULT IS | |
//07-20 00:37:00.909 10714-10805/gaming.eatongate.com.kwiffapp.sit.sit I/MainActivityRESPONSE: Log Response for COMMAND VARIATION :{"message":{"foo":"bar -> COMMAND VARIATION"},"content":"{\"foo\":\"bar -> COMMAND VARIATION\"}"} | |
socket.on('commandvariation', function(data, callback) { | |
var result = { foo: "bar -> COMMAND VARIATION" } | |
socket.emit('commandvariation', { message: result,content:JSON.stringify(result)}); | |
}); | |
}); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package gaming.eatongate.com.kwiffapp; | |
import android.os.Bundle; | |
import android.support.design.widget.FloatingActionButton; | |
import android.support.design.widget.Snackbar; | |
import android.support.v7.widget.Toolbar; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Toast; | |
import org.json.JSONObject; | |
import java.io.UnsupportedEncodingException; | |
import gaming.eatongate.com.kwiffapp.requestbuilders.authentication.LoginRequestBuilder; | |
import io.socket.client.Socket; | |
import io.socket.emitter.Emitter; | |
public class MainActivity extends BaseActivity { | |
public static final String TAG = MainActivity.class.getSimpleName() + "RESPONSE"; | |
private JSONObject loginPayload; | |
public static final String SESSION_STRING_SETUP = "setup"; | |
public static final String SESSION_STRING_COMMAND = "command"; | |
public static final String SESSION_STRING_COMMAND_VARIATION="commandvariation"; | |
public static final String SESSION_STRING_PING = "pinged"; | |
public static final String SESSION_STRING_SERVER_RECEIVED = "server_recieved"; | |
public static final String SESSION_STRING_SERVER_PINGED = "server_ping"; | |
public static final String SESSION_STRING_SERVER_DIRECT= "direct"; | |
public static final String SESSION_STRING_SERVER_BROADCAST= "broadcast"; | |
public static final String SESSION_STRING_SERVER_RESPONSE= "response"; | |
public static final String SESSION_STRING_SERVER_REQUEST= "request"; | |
private Socket mSocket; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); | |
setSupportActionBar(toolbar); | |
} | |
@Override | |
protected void onResume() { | |
super.onResume(); | |
mSocket= KwiffApplication.getKwiffApplicationInstance().getSocket(); | |
/** | |
* DEFAULT SET UP ..I need to know when a connection,disconnection or error occurs with | |
* the socket | |
*/ | |
mSocket.on(Socket.EVENT_CONNECT, onConnect); | |
mSocket.on(Socket.EVENT_DISCONNECT, onDisconnect); | |
mSocket.on(Socket.EVENT_CONNECT_ERROR, onConnectError); | |
/** | |
* PRIMARY FOCUS | |
* I HAVE sent a COMMAND my response should come back in this callback | |
* USING ANNONYMOUS OBJECT.....DOESN'T MAKE DIFFERENCE | |
*/ | |
mSocket.on(SESSION_STRING_COMMAND, new Emitter.Listener() { | |
@Override | |
public void call(Object... args) { | |
JSONObject data = (JSONObject) args[0]; | |
Log.i(TAG, "Log Response for COMMAND :" + data.toString()); | |
} | |
});//receiving callback | |
/** | |
* PRIMARY FOCUS | |
* I HAVE sent a COMMANDVARIATION my response should come back in this callback | |
* USING ANNONYMOUS OBJECT.....DOESN'T MAKE DIFFERENCE | |
*/ | |
mSocket.on(SESSION_STRING_COMMAND_VARIATION, new Emitter.Listener() { | |
@Override | |
public void call(Object... args) { | |
JSONObject data = (JSONObject) args[0]; | |
Log.i(TAG, "Log Response for COMMAND Variation:" + data.toString()); | |
} | |
});//receiving callback | |
//THIS BREAKS THE SERVER CODE --> BELOW | |
/* Server listening at port 3000 | |
Missing error handler on `socket`. | |
TypeError: string is not a function | |
at Socket.<anonymous> (/var/www/urls/cft_access/services/web_socket/index.js:119:21) | |
at Socket.emit (events.js:98:17) | |
at Socket.onevent (/var/www/urls/cft_access/services/web_socket/node_modules/socket.io/lib/socket.js:335:8) | |
at Socket.onpacket (/var/www/urls/cft_access/services/web_socket/node_modules/socket.io/lib/socket.js:295:12) | |
at Client.ondecoded (/var/www/urls/cft_access/services/web_socket/node_modules/socket.io/lib/client.js:193:14) | |
at Decoder.Emitter.emit (/var/www/urls/cft_access/services/web_socket/node_modules/component-emitter/index.js:134:20) | |
at Decoder.add (/var/www/urls/cft_access/services/web_socket/node_modules/socket.io-parser/index.js:247:12) | |
at Client.ondata (/var/www/urls/cft_access/services/web_socket/node_modules/socket.io/lib/client.js:175:18) | |
at Socket.emit (events.js:95:17) | |
at Socket.onPacket (/var/www/urls/cft_access/services/web_socket/node_modules/engine.io/lib/socket.js:101:14)*/ | |
mSocket.emit(SESSION_STRING_COMMAND, loginPayload, new Ack() { | |
@Override | |
public void call(Object... args) { | |
JSONObject data = (JSONObject) args[0]; | |
Log.i(TAG, "Log Response for COMMAND WITH ACK CALLBACK :" + data.toString()); | |
} | |
});//sending | |
/** | |
* PRIMARY FOCUS | |
* I HAVE sent a REQUEST my response should come here in this callback | |
* USING ANNONYMOUS OBJECT.....DOESN'T MAKE DIFFERENCE | |
*/ | |
mSocket.on(SESSION_STRING_SERVER_RESPONSE, new Emitter.Listener() { | |
@Override | |
public void call(Object... args) { | |
JSONObject data = (JSONObject) args[0]; | |
Log.i(TAG, "Log Response for REQUEST :" + data.toString()); | |
} | |
});//receiving callback | |
mSocket.connect(); | |
} | |
public void attemptLogin() { | |
try { | |
loginPayload = new LoginRequestBuilder.UserLoginRequestObjectBuilder().setEmail("test").setPassword("test").build(); | |
// Log.i(TAG, "Login Attempt :" + loginPayload.toString()); | |
} catch (UnsupportedEncodingException e) { | |
e.printStackTrace(); | |
} | |
mSocket.emit(SESSION_STRING_COMMAND, loginPayload);//sending | |
mSocket.emit(SESSION_STRING_COMMAND_VARIATION,loginPayload); | |
mSocket.emit(SESSION_STRING_SERVER_REQUEST, loginPayload);//sending | |
} | |
private Emitter.Listener onConnect = new Emitter.Listener() { | |
@Override | |
public void call(Object... args) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
Toast.makeText(MainActivity.this, | |
"Connected", Toast.LENGTH_LONG).show(); | |
attemptLogin(); | |
} | |
}); | |
} | |
}; | |
private Emitter.Listener onDisconnect = new Emitter.Listener() { | |
@Override | |
public void call(Object... args) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
Toast.makeText(MainActivity.this, | |
"DisConnected", Toast.LENGTH_LONG).show(); | |
} | |
}); | |
} | |
}; | |
private Emitter.Listener onConnectError = new Emitter.Listener() { | |
@Override | |
public void call(final Object... args) { | |
runOnUiThread(new Runnable() { | |
@Override | |
public void run() { | |
Toast.makeText(MainActivity.this, | |
"Error: " + args, Toast.LENGTH_LONG).show(); | |
} | |
}); | |
} | |
}; | |
@Override | |
public void onDestroy() { | |
super.onDestroy(); | |
mSocket.off(Socket.EVENT_CONNECT); | |
mSocket.off(Socket.EVENT_DISCONNECT); | |
mSocket.off(Socket.EVENT_CONNECT_ERROR); | |
mSocket.disconnect(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment