Trong ứng dụng mochiweb của tôi, tôi đang sử dụng một yêu cầu HTTP được giữ lâu. Tôi muốn phát hiện khi kết nối với người dùng qua đời, và tôi đã tìm ra cách để làm điều đó bằng cách thực hiện:Phát hiện đóng HTTP bằng cách sử dụng inet
Socket = Req:get(socket),
inet:setopts(Socket, [{active, once}]),
receive
{tcp_closed, Socket} ->
% handle clean up
Data ->
% do something
end.
này hoạt động khi: dùng đóng tab của ông/trình duyệt hoặc làm mới trang. Tuy nhiên, khi kết nối internet chết đột ngột (nói rằng tín hiệu wifi bị mất đột ngột), hoặc khi trình duyệt bị treo bất thường, tôi không thể phát hiện một tcp gần.
Tôi có thiếu thứ gì đó hoặc có cách nào khác để đạt được điều này không?
Tôi đã xem xét sử dụng mệnh đề sau, nhưng trong trường hợp này, quy trình của tôi có thể là quá trình ngủ đông. Liệu mệnh đề sau vẫn làm việc cho một quá trình ngủ đông? – jeffreyveon
Không, nó sẽ không. Một quá trình ngủ đông thức dậy khi một tin nhắn được gửi đến nó. Không có thời gian chờ ngủ đông, do đó, có một tin nhắn bị trì hoãn gửi đến cho bạn để thức dậy. – Christian