Class: WEBSocket::Server::AcceptedSocket

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/WEBSocket/Standard/server.rb,
lib/WEBSocket/Celluloid/server.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(socket) ⇒ AcceptedSocket



36
37
38
39
# File 'lib/WEBSocket/Standard/server.rb', line 36

def initialize socket
  @socket = socket
  @status = :disconnected
end

Instance Attribute Details

#statusObject (readonly)

Returns the value of attribute status.



8
9
10
# File 'lib/WEBSocket/Standard/server.rb', line 8

def status
  @status
end

Instance Method Details

#<<(s) ⇒ Object



90
91
92
93
# File 'lib/WEBSocket/Standard/server.rb', line 90

def << s
  frame = WebSocket::Frame::Outgoing::Server.new :version => @handshake.version, :data => s, :type => :text
  @socket << frame.to_s
end

#acquire_ownership(type) ⇒ Object



13
14
15
# File 'lib/WEBSocket/Standard/server.rb', line 13

def acquire_ownership type
  @socket.acquire_ownership type
end

#connectObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/WEBSocket/Standard/server.rb', line 17

def connect
  @handshake = WebSocket::Handshake::Server.new
  msg = @socket.readpartial 4096
  @handshake << msg
  until @handshake.finished?
    msg = @socket.readpartial 4096
    @handshake << msg
  end
  if @handshake.valid?
    @socket.write @handshake.to_s
    @status = :connected
  end
  self
end

#evented?Boolean



32
33
34
# File 'lib/WEBSocket/Standard/server.rb', line 32

def evented?
  false
end

#read(length = nil, buffer = nil) ⇒ Object



41
42
43
44
45
46
# File 'lib/WEBSocket/Standard/server.rb', line 41

def read length = nil, buffer = nil
  s = @socket.read length, buffer
  frame = WebSocket::Frame::Incoming::Server.new :version => @handshake.version
  frame << s
  frame.next.to_s
end

#read_nonblock(length, buffer = nil) ⇒ Object



48
49
50
51
52
53
54
55
# File 'lib/WEBSocket/Standard/server.rb', line 48

def read_nonblock length, buffer = nil
  buffer ||= ''

  s = @socket.read length, buffer
  frame = WebSocket::Frame::Incoming::Server.new :version => @handshake.version
  frame << s
  frame.next.to_s
end

#readpartial(length, buffer = nil) ⇒ Object



57
58
59
60
61
62
# File 'lib/WEBSocket/Standard/server.rb', line 57

def readpartial length, buffer = nil
  s = @socket.readpartial length, buffer
  frame = WebSocket::Frame::Incoming::Server.new :version => @handshake.version
  frame << s
  frame.next.to_s
end

#release_ownership(type) ⇒ Object



64
65
66
# File 'lib/WEBSocket/Standard/server.rb', line 64

def release_ownership type
  @socket.release_ownership type
end

#to_ioObject



68
69
70
# File 'lib/WEBSocket/Standard/server.rb', line 68

def to_io
  @socket
end

#wait_readableObject



72
73
74
# File 'lib/WEBSocket/Standard/server.rb', line 72

def wait_readable
  @socket.wait_readable
end

#wait_writableObject



76
77
78
# File 'lib/WEBSocket/Standard/server.rb', line 76

def wait_writable
  @socket.wait_writable
end

#write(s) ⇒ Object



80
81
82
83
# File 'lib/WEBSocket/Standard/server.rb', line 80

def write s
  frame = WebSocket::Frame::Outgoing::Server.new :version => @handshake.version, :data => s, :type => :text
  @socket.write frame.to_s
end

#write_nonblock(s) ⇒ Object



85
86
87
88
# File 'lib/WEBSocket/Standard/server.rb', line 85

def write_nonblock s
  frame = WebSocket::Frame::Outgoing::Server.new :version => @handshake.version, :data => s, :type => :text
  @socket.write_nonblock frame.to_s
end