Похоже, что Symfony пытается сериализовать целый пользовательский объект в сеанс, а некоторые из полей не сериализуемы. Вы должны реализовать интерфейс \serializable
и добавить только важные поля в метод сериализации.
class User implements UserInterface, ObjectManagerAware, \Serializable
{
...
public function serialize()
{
return serialize(array(
$this->id,
$this->username,
$this->password
));
}
public function unserialize($serialized)
{
list (
$this->id,
$this->username,
$this->password
) = unserialize($serialized, array('allowed_classes' => false));
}
Я изменяю ваш код следующим образом:
public class ServerThread extends Thread {
private static List<Socket> sockets = new ArrayList<>();
private Socket socket;
public ServerThread(Socket socket) {
this.socket = socket;
sockets.add(socket);
}
@Override
public void run() {
try {
// assume the data from client is a string Hello Server
String data = "Hello Server";
// send data to other client
for (Socket sc : sockets) {
if (!sc.equals(socket)) {
sc.getOutputStream().write(data.getBytes());
}
}
} catch (IOException ex) {
System.out.println("Server exception: " + ex.getMessage());
}
}
}