Class: CQHttp::Bot::WebSocket

Inherits:
Object
  • Object
show all
Includes:
EventEmitter
Defined in:
lib/Bot/Bot.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, debugmode) ⇒ WebSocket

Returns a new instance of WebSocket.



20
21
22
23
# File 'lib/Bot/Bot.rb', line 20

def initialize(url, debugmode)
  @url = url
  @debugmode = debugmode
end

Instance Attribute Details

#debugmodeObject

Returns the value of attribute debugmode.



15
16
17
# File 'lib/Bot/Bot.rb', line 15

def debugmode
  @debugmode
end

#selfIDObject

Returns the value of attribute selfID.



16
17
18
# File 'lib/Bot/Bot.rb', line 16

def selfID
  @selfID
end

#urlObject

Returns the value of attribute url.



14
15
16
# File 'lib/Bot/Bot.rb', line 14

def url
  @url
end

Instance Method Details

#connectObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/Bot/Bot.rb', line 25

def connect
  EM.run do
    @ws = Faye::WebSocket::Client.new(@url)

    @ws.on :open do
    end

    @ws.on :message do |event|
      Thread.new { dataParse(event.data)}
    end

    @ws.on :close do
      emit :close
      Utils.log Time.new, '!', '已断开连接'
      @ws = nil
      exit
    end

    @ws.on :error do |event|
      emit :error, event
      @ws = nil
    end
  end
end

#sendGroupMessage(msg, group_id) ⇒ Object



57
58
59
60
61
# File 'lib/Bot/Bot.rb', line 57

def sendGroupMessage(msg, group_id)
  ret = { action: 'send_group_msg', params: { group_id: group_id, message: msg }, echo: 'BotGroupMessage' }.to_json
  Utils.log Time.new, '', "发送至群 #{group_id} 的消息: #{msg}"
  @ws.send ret
end

#sendPrivateMessage(msg, user_id) ⇒ Object



51
52
53
54
55
# File 'lib/Bot/Bot.rb', line 51

def sendPrivateMessage(msg, user_id)
  ret = { action: 'send_private_msg', params: { user_id: user_id, message: msg }, echo: 'BotPrivateMessage' }.to_json
  Utils.log Time.new, '', "发送至私聊 #{user_id} 的消息: #{msg}"
  @ws.send ret
end