Module: ObjectsFramework::PubSub

Defined in:
lib/objectsframework/pubsub.rb

Defined Under Namespace

Modules: ClassExtend Classes: Channel

Constant Summary collapse

@@channels =
{}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(child) ⇒ Object



8
9
10
11
# File 'lib/objectsframework/pubsub.rb', line 8

def self.included(child)
	child.add_hook :filter => "request.capture", :method => "pubsub_capture_request"
	child.extend ClassExtend
end

Instance Method Details

#pubsub_capture_requestObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/objectsframework/pubsub.rb', line 13

def pubsub_capture_request
	# TODO: hijack rack request

	if(@env["HTTP_UPGRADE"] == "websocket")
		# Request is websockets hijacking
		tubesock = Tubesock.hijack(@env)

		@@channels[request.path.split("/")[2]].sockets << tubesock

		tubesock.onclose do
				@@channels[request.path.split("/")[2]].sockets.delete(tubesock)
		end

		tubesock.listen

		[-1, {}, []]
	else
		return continue
	end
end