gpt4 book ai didi

ruby-eventmachine 将 start_server 与实例一起使用

转载 作者:数据小太阳 更新时间:2023-10-29 08:28:12 26 4
gpt4 key购买 nike

我是 ruby​​ 的新手,也许这是一个非常简单的问题..我想使用 eventmachine 为我的测试开发一个模拟器。按照文档中的示例,我可以编写如下内容:

require 'eventmachine'

class Server< EM::Connection
def receive_data data
send_data data
close_connection_after_writing
end
end
#Note that this will block current thread.
EventMachine.run {
EventMachine.start_server '127.0.0.1','8080', Server
}

但我想知道是否有一种方法可以使用类的实例,例如:

require 'eventmachine'
class Server< EM::Connection
attr_accessor :response
def receive_data data
send_data @response
close_connection_after_writing
end
end

server1 = Server.new
server1.response = "foo"

#Note that this will block current thread.
EventMachine.run {
EventMachine.start_server '127.0.0.1','8080', server1
}

我尝试阅读源代码..但这对我来说太难了。我肯定错过了一些东西,但我不知道如何做这样的事情。

最佳答案

正如我所说,我遗漏了一些东西。

您可以为要实例化的类添加参数:

  class Server< EM::Connection
def initialize par
puts "I'm server number#{par}"
end
def receive_data data
send_data data
close_connection_after_writing
end
end

EventMachine.run {
EventMachine.start_server '127.0.0.1','8080', Server,1
}

EventMachine.run {
EventMachine.start_server '127.0.0.1','8080', Server,2
}

所以我会用参数自定义实例行为

关于ruby-eventmachine 将 start_server 与实例一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13144134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com