Crystal 0.9.1 with Kemal
require "kemal"
ws "/" do |socket|
socket.on_message do |message|
end| # Type inferred | |
| def say(something) | |
| p something | |
| end | |
| # Explicit Type | |
| def say(something : String) | |
| p something | |
| end |
| require "http/server" | |
| SOCKETS = [] of HTTP::WebSocketHandler::WebSocketSession | |
| ws_handler = HTTP::WebSocketHandler.new do |socket| | |
| puts "Socket opened" | |
| SOCKETS << socket | |
| socket.on_message do |message| | |
| SOCKETS.each { |socket| socket.send "Echo back from server: #{message}" } |
Crystal 0.9.1 with Kemal
require "kemal"
ws "/" do |socket|
socket.on_message do |message|
end| require "kemal" | |
| logging false | |
| # OAuth Authorizations | |
| get "/authorizations" do | |
| "" | |
| end | |
| get "/authorizations/:id" do | |
| "" |
| require "kemal" | |
| logging false | |
| get "/" do | |
| "Hello World!" | |
| end |
| require "kemal" | |
| require "benchmark" | |
| def create_ws_request_and_return_io(handler, request) | |
| io = MemoryIO.new | |
| response = HTTP::Server::Response.new(io) | |
| context = HTTP::Server::Context.new(request, response) | |
| begin | |
| handler.call context | |
| rescue IO::Error |
| require "benchmark" | |
| require "json" | |
| class MenuItem | |
| def self.all | |
| h = { | |
| "name": "Serdar", | |
| "age": 27, | |
| "email": "dogruyolserdar@gmail.com", |