Я думаю, что это просто раздражение от Safari.В текущих выпущенных версиях Safari реализована более старая версия протокола WebSockets, и реализация работает, но ее немного не хватает.Проблема с длиной сообщения 0 довольно ручная.Более серьезная проблема - невозможность правильно закрыть соединение (в основном не закрывает фактический сокет, пока страница не будет перезагружена).
Попробуйте выполнить тот же тест с недавним Chrome.Если вы не видите проблемы там, то это просто проблема Safari.Если вы по-прежнему видите сообщения нулевой длины, то, вероятно, сервер веб-сокетов PHP отправляет сообщения нулевой длины (возможно, из-за того, что они не работают).