Add NIP-01 compliant client code

This commit is contained in:
Wilson Silva
2023-01-12 17:13:45 +07:00
parent e344ebda82
commit 5b1786ddec
30 changed files with 2260 additions and 2 deletions

View File

@@ -0,0 +1,43 @@
# frozen_string_literal: true
require 'puma'
require 'puma/binder'
require 'puma/events'
class EchoServer
def call(env)
@socket = Faye::WebSocket.new(env, ['echo'])
@socket.onmessage = lambda do |event|
@socket.send(event.data)
end
@socket.rack_response
end
def send(message)
@socket.send(message)
end
def close(code, reason)
@socket.close(code, reason)
end
def log(*args); end
def listen(port)
events = Puma::Events.new(StringIO.new, StringIO.new)
binder = Puma::Binder.new(events)
binder.parse(["tcp://0.0.0.0:#{port}"], self)
@server = Puma::Server.new(self, events)
@server.binder = binder
@server.run
end
def stop
case @server
when Puma::Server then @server.stop(true)
else @server.stop
end
end
end