public function publish($topic, $messages, $optionalArgs = [])
{
$request = new PublishRequest();
$request->setTopic($topic);
foreach ($messages as $elem) {
$request->addMessages($elem);
}
$mergedSettings = $this->defaultCallSettings['publish']->merge(new CallSettings($optionalArgs));
$callable = ApiCallable::createApiCall($this->publisherStub, 'Publish', $mergedSettings, $this->descriptors['publish']);
return $callable($request, [], ['call_credentials_callback' => $this->createCredentialsCallback()]);
}