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": "[email protected]", |