Данный чат в первую очередь задумывался как демонстрационный пример для моего
доклада про веб сокеты на РИТ-2010. То есть в первую очередь он создавался чтобы протестировать веб сокеты, проверить как будет работать event-driven система, состоящая из брауера, сервера и среды передачи данных. То, что это все хорошо работает по отдельности - уже давно
(
Read more... )
Comments 9
Этих вот unicode:XYZ функций не надо вовсе. Смысла в них ноль.
> Conn_Manager = spawn(fun() -> conn_manager() end),
Conn_manager = spawn(fun conn_manager/0),
> register(conn_mgr, Conn_Manager),
erl -man gen_server, уверяю, это просто для головы, и лучше для дела.
> continue_work() ->
> receive
Этот процессинг не имеет таймаута (after timeout), что есть плохо. Кроме того, при hot code upgrade процесс, крутящий этот цикл, будет грязно падать.
> process_flag(trap_exit, true),
Гораздо корректнее использовать erlang:monitor, и ловить 'DOWN', чем ловить 'EXIT' после выставления trap_exit. Так как erlang:monitor внизу и делается, рекомендую выбросить process_flag(trap_exit, true) вовсе из кода.
> conn_manager(CurrentState) ->
Опять же, дешевле, нагляднее и лучше использовать gen_server.
> Res = lists:keytake(Pid, 2, CurrentClients),
Дикая позиционщина. Что за "2"? Я бы весь блок внизу переписал так:
{set_opts, Pid, Session ( ... )
Reply
Reply
Reply
Я тоже решил двигаться в сторону OTP, пока некоторые детали не ясны, но будем разбираться.
Reply
(The comment has been removed)
Есть мысль как обойти, но буду это делать уже в новой версии.
А что у вас показывается? Какие ошибки?
Тестировал во все ослах - все отлично даже в 6.
Reply
(The comment has been removed)
Тестировал на 8 осле Вынь7 - все четко.
Reply
Leave a comment