<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def publish(self, payload):
        '''Publish payload to the topic

        .. note:: If you publishes just after creating Publisher instance, it will causes
           lost of message. You have to add sleep if you just want to publish once.

           >>> pub = jps.Publisher('topic')
           >>> time.sleep(0.1)
           >>> pub.publish('{data}')

        :param payload: data to be published. This is ok if the data is not json.
        '''
        if self._serializer is not None:
            payload = self._serializer(payload)
        if self._topic == '*':
            # special case for publish everything
            msg = payload
        else:
            msg = '{topic} {data}'.format(topic=self._topic, data=payload)
        self._socket.send(cast_bytes(msg))