Initial
This commit is contained in:
		
							
								
								
									
										19
									
								
								lib/client.ex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								lib/client.ex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
defmodule Broadcast.ClientHandler do
 | 
			
		||||
  use Task
 | 
			
		||||
 | 
			
		||||
  def start(sock) do
 | 
			
		||||
    Task.start_link(__MODULE__, :handle, [sock])
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def handle(sock) do
 | 
			
		||||
    case :gen_tcp.recv(sock, 0) do
 | 
			
		||||
      {:ok, line} ->
 | 
			
		||||
        Broadcast.Server.broadcast("Someone said: " <> line)
 | 
			
		||||
        handle(sock)
 | 
			
		||||
 | 
			
		||||
      {:error, _} ->
 | 
			
		||||
        :gen_tcp.close(sock)
 | 
			
		||||
        Broadcast.Server.remove_client()
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user