code: func (gs *GRPCClient) SendPush(userID string, frontendSv *Server, push *protos.Push) error {
  	var svID string
  	var err error
  	if frontendSv.ID != "" {
  		svID = frontendSv.ID
  	} else {
  		if gs.bindingStorage == nil {
  			return constants.ErrNoBindingStorageModule
  		}
  		svID, err = gs.bindingStorage.GetUserFrontendID(userID, frontendSv.Type)
  		if err != nil {
  			return err
  		}
  	}
  	if c, ok := gs.clientMap.Load(svID); ok {
  		ctxT, done := context.WithTimeout(context.Background(), gs.reqTimeout)
  		defer done()
  		_, err := c.(protos.PitayaClient).PushToUser(ctxT, push)
  		return err
  	}
  	return constants.ErrNoConnectionToServer
  }
docs: // SendPush sends a message to an user, if you dont know the serverID that the user is connected to, you need to set a BindingStorage when creating the client
  // TODO: Jaeger?