Module: Wampus::Protocols::Wamp

Included in:
WampCra, Servers::Wamp
Defined in:
lib/wampus/protocols/wamp.rb

Constant Summary collapse

URI_BASE =
'http://api.wamp.ws/'
URI_TOPIC =
URI_BASE + 'topic#'
URI_RPC =
URI_BASE + 'rpc#'
URI_ERROR =
URI_BASE + 'error#'
PROTOCOL_VERSION =
1
WELCOME_MSG_ID =
0
PREFIX_MSG_ID =
1
CALL_MSG_ID =
2
CALL_RESULT_MSG_ID =
3
CALL_ERROR_MSG_ID =
4
SUBSCRIBE_MSG_ID =
5
UNSUBSCRIBE_MSG_ID =
6
PUBLISH_MSG_ID =
7
EVENT_MSG_ID =
8

Instance Method Summary collapse

Instance Method Details

#call_error_msg(call_id, error_uri, error_desc, error_details = nil) ⇒ Object



33
34
35
36
37
# File 'lib/wampus/protocols/wamp.rb', line 33

def call_error_msg(call_id, error_uri, error_desc, error_details = nil)
  msg = [CALL_ERROR_MSG_ID, call_id, error_uri, error_desc, error_details]
  msg.delete_if { |x| x.nil? }
  msg.to_json
end

#call_msg(call_id, proc_uri, *args) ⇒ Object



23
24
25
# File 'lib/wampus/protocols/wamp.rb', line 23

def call_msg(call_id, proc_uri, *args)
  [CALL_MSG_ID, call_id, proc_uri, *args].to_json
end

#call_result_msg(call_id, result = nil) ⇒ Object



28
29
30
# File 'lib/wampus/protocols/wamp.rb', line 28

def call_result_msg(call_id, result = nil)
  [CALL_RESULT_MSG_ID, call_id, result].to_json
end

#event_msg(topic_uri, event) ⇒ Object



59
60
61
# File 'lib/wampus/protocols/wamp.rb', line 59

def event_msg(topic_uri, event)
  [EVENT_MSG_ID, topic_uri, event].to_json
end

#prefix_msg(prefix, uri) ⇒ Object



18
19
20
# File 'lib/wampus/protocols/wamp.rb', line 18

def prefix_msg(prefix, uri)
  [PREFIX_MSG_ID, prefix, uri].to_json
end

#publish_msg(topic_uri, event, exclude = nil, eligible = nil) ⇒ Object



50
51
52
53
54
55
56
# File 'lib/wampus/protocols/wamp.rb', line 50

def publish_msg(topic_uri, event, exclude = nil, eligible = nil)
  msg = [PUBLISH_MSG_ID, topic_uri, event]
  msg[3] = exclude unless exclude.nil?
  msg[4] = eligible unless eligible.nil?

  msg.to_json
end

#subscribe_msg(topic_uri) ⇒ Object



40
41
42
# File 'lib/wampus/protocols/wamp.rb', line 40

def subscribe_msg(topic_uri)
  [SUBSCRIBE_MSG_ID, topic_uri].to_json
end

#unsubscribe_msg(topic_uri) ⇒ Object



45
46
47
# File 'lib/wampus/protocols/wamp.rb', line 45

def unsubscribe_msg(topic_uri)
  [UNSUBSCRIBE_MSG_ID, topic_uri].to_json
end

#welcome_msg(connection_id) ⇒ Object



13
14
15
# File 'lib/wampus/protocols/wamp.rb', line 13

def welcome_msg(connection_id)
  [WELCOME_MSG_ID, connection_id, PROTOCOL_VERSION, server_ident].to_json
end