Максим Тимофеев: точка это любой символ, кроме перевода строки, а звездочка это квантификатор к нему. Т.е., данный класс символов может повторяться любое количество раз (от 0 до бесконечности).
Александр К: просмотр вперед/назад тут имеет смысл только если вам надо было бы скобки исключить из совпадения, например. Да и то, захватывающей группой это сделать легче. Следует стараться избегать просмотра, ибо он далеко не везде поддерживается и замедляет обработку.
Владимир Грабко: потому что reader вы создаете в каждой итерации цикла, это неправильно.
Нужно так:
reader := bufio.NewReader(conn)
for {
message, err := reader.ReadString('\n')
if err != nil {
log.Fatal(err)
}
fmt.Print("Message from server: " + message)
}
Владимир Грабко: Удалить клиента можно через pool.DeleteClient()
Поправить ошибку можно вот так, например: pastebin.com/WCMFB4di
Не обязательно проверять на EOF, достаточно просто смотреть, есть ли ошибка.
Владимир Грабко: хранится список всех подключенных клиентов clients map[uint64]Client
Если в канал broadcasts пришло сообщение, то пробегаемся циклом по этому списку и посылаем каждому клиенту это сообщение
case text := <-pool.broadcasts:
for _, client := range pool.clients {
client.MsgChan <- text
}
}
Владимир Грабко: если подадите команду n раз, нет гарантии, что каждый клиент получит ее по разу, порядок чтения из канала не гарантировал. Какой клиент быстрее успеет, тот и папа. Нужно именно n каналов.
Владимир Грабко: пул клиентов это массив или map каналов, по одному каналу на клиента. Сообщение, записанное в канал, может быть прочитано из него только один раз! Поэтому у вас оно доходит только одному клиенту.
Иван: на мобильных устройствах сейчас неплохо с этим. Мой старенький Nexus 4, например, без проблем тянет анимашку робота из заголовка скетчфаба https://sketchfab.com/
Кстати, можете пооткрывать там разные модели с планшета, оценить производительность.
Игорь Морев: я WebGL+js использую для прототипирования игр, публичных работ у меня нет по этой теме. Могу из спортивного интереса на выходных сделать вам прототип торта, потестите в разных условиях )))
Иван: Работал с WebGL уже много раз, partial support там в определенных местах только типа размерности текстур не под степень двойки. Больших проблем с поддержкой браузеров не было.
Судя по ТЗ автора, проект именно рассчитан на вау-эффект.
Много полигонов для торта не понадобится, тут главное освещение и шейдеры грамотно сделать. Запечь реалистичные лайтмэпы и будет уже 50% успеха. Плюс, в WebGL ведь нет старого пайплайна по системе glBegin() glVertex().... glEnd(). API прямо таки заставляет использовать VBO, так что написать медленную отрисовку, это надо постараться.
Иван: partial support полностью решается использованием three.js, которая адаптируется под такие ситуации.
Если делать не в 3д, а с помощью видео, то можно хлебнуть не меньше горя с поддержкой антиквариата. caniuse.com/#search=video caniuse.com/#search=canvas