a small chat client which uses erlv8 javascript
This commit is contained in:
parent
2daf20c039
commit
7732bb9742
4 changed files with 184 additions and 0 deletions
63
games/JS-chat/chat.rb
Normal file
63
games/JS-chat/chat.rb
Normal file
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env ruby -wKU
|
||||
|
||||
$: << "."
|
||||
|
||||
require 'ggs-network.rb'
|
||||
require 'ggs-delegate.rb'
|
||||
|
||||
class Chat
|
||||
include GGSDelegate
|
||||
|
||||
def initialize
|
||||
@ggs_network = GGSNetwork.new(self)
|
||||
@ggs_network.connect("localhost")
|
||||
end
|
||||
|
||||
def ggsNetworkReady(ggs_network, ready)
|
||||
source_code = File.open("chat_server.js", "rb").read
|
||||
@ggs_network.define(source_code)
|
||||
end
|
||||
|
||||
def ggsNetworkDefined(ggs_network, defined)
|
||||
if defined
|
||||
print "Your nickname: "
|
||||
nick = gets.chomp
|
||||
@ggs_network.sendCommand("/nick", nick)
|
||||
Thread.new {
|
||||
loop do
|
||||
input
|
||||
end
|
||||
}
|
||||
else
|
||||
source_code = File.open("chat_server.js", "rb").read
|
||||
@ggs_network.define(source_code)
|
||||
end
|
||||
end
|
||||
|
||||
def ggsNetworkReceivedCommandWithArgs(ggs_network, command, args)
|
||||
case command
|
||||
when "message" then message(args)
|
||||
when "notice" then notice(args)
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def message(message)
|
||||
puts message
|
||||
end
|
||||
|
||||
def notice(notice)
|
||||
puts "<#{notice}>"
|
||||
end
|
||||
|
||||
def input
|
||||
message = gets.chomp
|
||||
@ggs_network.sendCommand("message", message)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if __FILE__ == $0
|
||||
Chat.new
|
||||
end
|
Reference in a new issue