Rails app将用户连接到telnet服务器

时间:2014-06-24 23:58:43

标签: ruby-on-rails ruby telnet

现在很少有MUD个客户端是最新的;大多数都是图形过时的,不是用户友好的。

我想创建一个rails应用程序,用户可以登录并连接到不同的MUD(也称为telnet服务器)。我知道ruby有&net / telnet'库,但我不确定它是如何工作的,或者如何用rails实现它。

我只是不确定如何允许用户与telnet服务器进行交互。关于如何做到这一点的任何建议?

我只能在整个互联网上找到one source,但文档很差,不适合我的目的。感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

添加:

require 'net/telnet'

足以使用它。然后你可以按照文档:

http://ruby-doc.org/stdlib-1.9.3/libdoc/net/telnet/rdoc/Net/Telnet.html#class-Net::Telnet-label-Examples

要使用rails实现它,您可以在libs中创建一个类,允许用户建立与所需主机的连接:

class TelnetClient
  require 'net/telnet'

  def self.new_connection(data_hash)
     Net::Telnet::new("Host" => data_hash["host"], 
                      "Timeout" => data_hash["timeout"],
                      "Prompt" => /[$%#>] \z/n)
  end

end

class ConnectionsController < ApplicationController

  def new_connection
     $localhost = TelnetClient.new_connection(connection_params)
     #whatever you need
  end

  def interactive_shell
    $localhost.cmd(params[:string])
    #other actions
  end

  private

  def connection_params
    params.require(:connection).permit(:host, :timeout)
  end
end

在视图中使用javascript创建一个漂亮的交互式shell,以允许用户通过ajax与控制器进行交互。