@Override public void actionPerformed(ActionEvent evt) { String name = nameField.getText(); String message = messageField.getText(); ChatMessage chat = new ChatMessage(name, message); chat.setReliable(reliable); System.out.println("Sending:" + chat); client.send(chat); } }
public void exposeObject(String name, Object obj) throws IOException{ // Create a local object LocalObject localObj = new LocalObject(); localObj.objectName = name; localObj.objectId = objectIdCounter++; localObj.theObject = obj; //localObj.methods = obj.getClass().getMethods(); ArrayList<Method> methodList = new ArrayList<Method>(); for (Method method : obj.getClass().getMethods()){ if (method.getDeclaringClass() == obj.getClass()){ methodList.add(method); } } localObj.methods = methodList.toArray(new Method[methodList.size()]); // Put it in the store localObjects.put(localObj.objectId, localObj); // Inform the others of its existence RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = new ObjectDef[]{ makeObjectDef(localObj) }; if (client != null) { client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else { server.broadcast(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } }
public void messageReceived(Client source, Message m) { TimestampMessage timeMsg = (TimestampMessage) m; long curTime = getTime(); //System.out.println("Time sent: " + timeMsg.timeSent); //System.out.println("Time received by server: " + timeMsg.timeReceived); //System.out.println("Time received by client: " + curTime); long latency = (curTime - timeMsg.timeSent); System.out.println("Latency: " + (latency) + " ms"); //long timeOffset = ((timeMsg.timeSent + curTime) / 2) - timeMsg.timeReceived; //System.out.println("Approximate timeoffset: "+ (timeOffset) + " ms"); average.add(latency); System.out.println("Average latency: " + average.getAverage()); long latencyOffset = latency - average.getAverage(); System.out.println("Latency offset: " + latencyOffset); client.send(new TimestampMessage(getTime(), 0)); } }, TimestampMessage.class);
logger.log(Level.FINE, "Server: Sending {0}", call); }else{ client.send(call); logger.log(Level.FINE, "Client: Sending {0}", call);
logger.log(Level.FINE, "Server: Sending {0}", retMsg); } else{ client.send(retMsg); logger.log(Level.FINE, "Client: Sending {0}", retMsg);
private void onConnection(HostedConnection conn) { if (localObjects.size() > 0){ // send a object definition message ObjectDef[] defs = new ObjectDef[localObjects.size()]; int i = 0; for (Entry<LocalObject> entry : localObjects){ defs[i] = makeObjectDef(entry.getValue()); i++; } RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = defs; if (this.client != null){ this.client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else{ conn.send(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } } }
public static void main(String[] args) throws IOException, InterruptedException{ Serializer.registerClass(SomeObject.class); Serializer.registerClass(TestSerializationMessage.class); Server server = Network.createServer( 5110 ); server.start(); Client client = Network.connectToServer( "localhost", 5110 ); client.start(); server.addMessageListener(new TestSerialization(), TestSerializationMessage.class); client.send(new TestSerializationMessage(true)); Thread.sleep(10000); }
public static void main(String[] args) throws IOException, InterruptedException{ Serializer.registerClass(PingMessage.class); Serializer.registerClass(PongMessage.class); Server server = Network.createServer(5110); server.start(); Client client = Network.connectToServer("localhost", 5110); client.start(); server.addMessageListener(new ServerPingResponder(), PingMessage.class); client.addMessageListener(new ClientPingResponder(), PongMessage.class); System.out.println("Client: Sending ping message.."); client.send(new PingMessage()); Object obj = new Object(); synchronized (obj){ obj.wait(); } } }
client.send(new TimestampMessage(getTime(), 0));
public static void main(String[] args) throws IOException, InterruptedException { Serializer.registerClass(TestMessage.class); // Use this to test the client/server name version check //Server server = Network.createServer( "bad name", 42, 5110, 5110 ); Server server = Network.createServer(5110, 5110); server.start(); Client client = Network.connectToServer("localhost", 5110); client.start(); client.addMessageListener(new TestThroughput(false), TestMessage.class); server.addMessageListener(new TestThroughput(true), TestMessage.class); Thread.sleep(1); TestMessage test = new TestMessage(); // for( int i = 0; i < 10; i++ ) { while (true) { //System.out.println( "sending." ); client.send(test); } //Thread.sleep(5000); } }
@Override @SuppressWarnings("unchecked") // because Java doesn't like generic varargs public EntitySet getEntities( ComponentFilter filter, Class... types ) { if( log.isTraceEnabled() ) { log.trace("getEntities(" + filter + ", " + Arrays.asList(types) + ")"); } int id = nextSetId.getAndIncrement(); RemoteEntitySet result = new RemoteEntitySet(id, filter, types); // Make sure we register the entity set before sending the message... activeSets.put(id, result); // Send a message to ask the server to start watching this // for us... and to send an initial data set asynchronously. Message m = new GetEntitySetMessage( id, filter, types ); m.setReliable(true); client.send(channel, m); if( log.isTraceEnabled() ) { log.trace("result:" + result); } return result; }
@Override public void resetFilter( ComponentFilter filter ) { super.resetFilter(filter); // Need to send a message to the server to let it // know our interests have changed. Message m = new ResetEntitySetFilterMessage(setId, filter); m.setReliable(true); if( log.isDebugEnabled() ) log.debug( "Sending filter reset:" + m ); client.send(channel, m); }
@Override public void release() { if( isReleased() ) { return; } super.release(); if( log.isDebugEnabled() ) { log.debug("Releasing watched entity:" + watchId ); } watchedEntities.remove(watchId); if( client.isConnected() ) { ReleaseWatchedEntityMessage msg = new ReleaseWatchedEntityMessage(watchId); client.send(channel, msg); } }
protected StringIdMessage getStringResponse( StringIdMessage msg ) { int id = msg.getRequestId(); msg.setReliable(true); // Setup response tracking PendingStringRequest request = new PendingStringRequest(msg); pendingRequests.put(id, request); // Now we can send client.send(channel, msg); try { return request.getResult(); } catch( InterruptedException e ) { throw new RuntimeException("Interrupted waiting for string data.", e); } }
@Override public void release() { if( isReleased() ) { return; } super.release(); if( log.isDebugEnabled() ) { log.debug("Releasing set:" + setId ); } activeSets.remove(setId); if( client.isConnected() ) { ReleaseEntitySetMessage msg = new ReleaseEntitySetMessage(setId); client.send(channel, msg); } }
public void exposeObject(String name, Object obj) throws IOException{ // Create a local object LocalObject localObj = new LocalObject(); localObj.objectName = name; localObj.objectId = objectIdCounter++; localObj.theObject = obj; //localObj.methods = obj.getClass().getMethods(); ArrayList<Method> methodList = new ArrayList<Method>(); for (Method method : obj.getClass().getMethods()){ if (method.getDeclaringClass() == obj.getClass()){ methodList.add(method); } } localObj.methods = methodList.toArray(new Method[methodList.size()]); // Put it in the store localObjects.put(localObj.objectId, localObj); // Inform the others of its existence RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = new ObjectDef[]{ makeObjectDef(localObj) }; if (client != null) { client.send(defMsg); logger.log(Level.INFO, "Client: Sending {0}", defMsg); } else { server.broadcast(defMsg); logger.log(Level.INFO, "Server: Sending {0}", defMsg); } }
public void exposeObject(String name, Object obj) throws IOException{ // Create a local object LocalObject localObj = new LocalObject(); localObj.objectName = name; localObj.objectId = objectIdCounter++; localObj.theObject = obj; //localObj.methods = obj.getClass().getMethods(); ArrayList<Method> methodList = new ArrayList<Method>(); for (Method method : obj.getClass().getMethods()){ if (method.getDeclaringClass() == obj.getClass()){ methodList.add(method); } } localObj.methods = methodList.toArray(new Method[methodList.size()]); // Put it in the store localObjects.put(localObj.objectId, localObj); // Inform the others of its existence RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = new ObjectDef[]{ makeObjectDef(localObj) }; if (client != null) { client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else { server.broadcast(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } }
/** * Send our latest time and let the server ping us back */ protected void sendPing() { client.send(new MessageTime(getGameTime()).setReliable(true)); }
private void onConnection(HostedConnection conn) { if (localObjects.size() > 0){ // send a object definition message ObjectDef[] defs = new ObjectDef[localObjects.size()]; int i = 0; for (Entry<LocalObject> entry : localObjects){ defs[i] = makeObjectDef(entry.getValue()); i++; } RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = defs; if (this.client != null){ this.client.send(defMsg); logger.log(Level.INFO, "Client: Sending {0}", defMsg); } else{ conn.send(defMsg); logger.log(Level.INFO, "Server: Sending {0}", defMsg); } } }
private void onConnection(HostedConnection conn) { if (localObjects.size() > 0){ // send a object definition message ObjectDef[] defs = new ObjectDef[localObjects.size()]; int i = 0; for (Entry<LocalObject> entry : localObjects){ defs[i] = makeObjectDef(entry.getValue()); i++; } RemoteObjectDefMessage defMsg = new RemoteObjectDefMessage(); defMsg.objects = defs; if (this.client != null){ this.client.send(defMsg); logger.log(Level.FINE, "Client: Sending {0}", defMsg); } else{ conn.send(defMsg); logger.log(Level.FINE, "Server: Sending {0}", defMsg); } } }