| 311 | } |
| 312 | |
| 313 | private void onopen() { |
| 314 | logger.fine("open"); |
| 315 | |
| 316 | this.cleanup(); |
| 317 | |
| 318 | this.readyState = ReadyState.OPEN; |
| 319 | this.emit(EVENT_OPEN); |
| 320 | |
| 321 | final io.socket.engineio.client.Socket socket = this.engine; |
| 322 | this.subs.add(On.on(socket, Engine.EVENT_DATA, new Listener() { |
| 323 | @Override |
| 324 | public void call(Object... objects) { |
| 325 | Object data = objects[0]; |
| 326 | try { |
| 327 | if (data instanceof String) { |
| 328 | Manager.this.decoder.add((String) data); |
| 329 | } else if (data instanceof byte[]) { |
| 330 | Manager.this.decoder.add((byte[]) data); |
| 331 | } |
| 332 | } catch (DecodingException e) { |
| 333 | logger.fine("error while decoding the packet: " + e.getMessage()); |
| 334 | } |
| 335 | } |
| 336 | })); |
| 337 | this.subs.add(On.on(socket, Engine.EVENT_ERROR, new Listener() { |
| 338 | @Override |
| 339 | public void call(Object... objects) { |
| 340 | Manager.this.onerror((Exception)objects[0]); |
| 341 | } |
| 342 | })); |
| 343 | this.subs.add(On.on(socket, Engine.EVENT_CLOSE, new Listener() { |
| 344 | @Override |
| 345 | public void call(Object... objects) { |
| 346 | Manager.this.onclose((String)objects[0]); |
| 347 | } |
| 348 | })); |
| 349 | this.decoder.onDecoded(new Parser.Decoder.Callback() { |
| 350 | @Override |
| 351 | public void call (Packet packet) { |
| 352 | Manager.this.ondecoded(packet); |
| 353 | } |
| 354 | }); |
| 355 | } |
| 356 | |
| 357 | private void ondecoded(Packet packet) { |
| 358 | this.emit(EVENT_PACKET, packet); |