Он работал, но теперь он больше не работает!
Я использую php–amqplib и RabbitMQ.
Он показывает эту ошибку: (перетащите снимок экрана на новую вкладку, если это не ясно)
когда я пытаюсь создать новое соединение AMQP:
$connection = new AMQPConnection('localhost', 5672, 'username', 'password');
Код внутри библиотеки, вызывающий эту ошибку:
public function read($n) { $res = ''; $read = 0; while ($read < $n && !feof($this->sock) && (false !== ($buf = fread($this->sock, $n - $read)))) { if ($buf === '') { continue; } $read += strlen($buf); $res .= $buf; } if (strlen($res)!=$n) { throw new AMQPRuntimeException("Error reading data. Received " . strlen($res) . " instead of expected $n bytes"); } return $res; }
Когда я поставлю это перед исключением:
die($res." :".$n);
результат:
Ï :7 :7
он вызывается дважды, при первом вызове $ res – два нулевых символа, тогда «Ï»
и во втором случае это просто нулевое значение.
oh и я удалил файлы внутри папки mnesia базы данных rabbitmq вручную один раз, я не знаю, вызвала ли это проблему, но RabbitMQ Management, работающее на веб-приложении на порту 15672, отлично работает.
Я нашел решение.
пользователь, которого я использовал, не имел доступа к vhost, поэтому в RabbitMQ Management я перешел на вкладку admin и нажал на имя пользователя и нажал кнопку «установить разрешение».
Вы также получите эту ошибку, если номер порта неверен. Я использовал порт управления 15672 вместо сервера 5672 по ошибке и получал эту же ошибку.
Поэтому, если настройка прав пользователя не работает, проверьте параметр соединения.
Я знаю, что на это уже был дан ответ, но вот еще одна возможная причина:
По умолчанию пользователь «гостя» может подключаться только через localhost по умолчанию. https://www.rabbitmq.com/access-control.html
Я получил эту ошибку «0» при попытке подключиться удаленно в первый раз после успешного тестирования локально. Настройка другого пользователя разрешила это для меня.
rabbitmqctl add_user newuser <PASSWORD> rabbitmqctl set_permissions -p / newuser ".*" ".*" ".*"
Этот и многие другие потенциальные ответы также находятся на github здесь