Ah, I see! So, at the moment the container is injected:
https://github.com/laupiFrpar/LopiPusherBundle/blob/master/Pusher/Pusher.php#L16

pusher-php-server could instead be updated to pass some options:
https://github.com/laupiFrpar/LopiPusherBundle/blob/master/Pusher/Pusher.php#L16

    public function __construct( $auth_key, $secret, $app_id, $debug = false, $host = 'http://api.pusherapp.com', $port = '80', $timeout = 30 )

Could be updated to the follow, with backwards compatibility.

    public function __construct( $auth_key, $secret, $app_id, $options )

Options will be:

```
// defaults
array(
  'debug' => false,
  'host' => 'http://app.pusherapp.com',
  'port' => 80,
  'timeout' => 30,
  'serializer' => new JsonEncoder()
);
```

`JsonEncoder` could just be a wrapper class around the standard `json_encode` and `json_decode` functionality and have an `encode` and `decode` function. So, you could instead pass in a `JMSSerializer`.