:meth:`.WMessengerOnionCoderLayerProto.encode` method implementation.

		:param envelope: original envelope
		:param session: original session
		:param encoding: encoding to use (default is 'utf-8')
		:param kwargs: additional arguments

		:return: WMessengerBytesEnvelope

def encode(self, envelope, session, encoding=None, **kwargs):
		""" :meth:`.WMessengerOnionCoderLayerProto.encode` method implementation.

		:param envelope: original envelope
		:param session: original session
		:param encoding: encoding to use (default is 'utf-8')
		:param kwargs: additional arguments

		:return: WMessengerBytesEnvelope
		"""
		message = envelope.message()
		message = message.encode() if encoding is None else message.encode(encoding)
		return WMessengerBytesEnvelope(message, meta=envelope)