Skip to content

Instantly share code, notes, and snippets.

@jeregrine
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeregrine/af7ecb4c7d87767411a0 to your computer and use it in GitHub Desktop.
Save jeregrine/af7ecb4c7d87767411a0 to your computer and use it in GitHub Desktop.
  1. browse to localhost:5000
  2. open javascript console
  3. ws = new WebSocket("ws://localhost:5000/my_websocket")
  4. ws.onmessage = function(resp){console.log(resp.data)}
  5. ws.send("Hey")
defmodule Totem.Router do
use Phoenix.Router, port: 5000
resources "/user", UserController
websocket "/my_websocket", Totem.SocketController
end
defmodule Totem.SocketController do
use Phoenix.Controller.Websocket
def start(_transport, socket, _state) do
:erlang.start_timer(1000, self(), "Hello!")
IO.puts "INIT"
:ok
end
def stream(_data, socket, _state) do
IO.puts "RECIEVED DATA"
reply socket, {:text, "Thats what she said!"}
end
def info({:timeout, _ref, msg}, socket, _state) do
IO.puts "TIMEOUT SENDING DATA"
reply socket, {:text, msg}
:erlang.start_timer(1000, self(), "How' you doin'?")
end
def closed(reason, _req, _state) do
IO.inspect reason
:ok
end
end
@jeregrine
Copy link
Author

@benjamintanweihao
Copy link

I am so looking forward for this to be merged to master!

@patrickdet
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment