2016-09-10 4 views
1

Ich bin mit Ruby-on-Rails auf Cloud9 IDEWie benutzt man TCPServer in Ruby on Rails?

$ ruby -v 
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux] 
$ rails -v 
Rails 4.2.4 

Ich habe Daten zwischen Server und GPS-Gerät zu übertragen. Ich legte Gerät an und habe Code wie unten gemacht.

My_Controller

class DashboardController < ApplicationController 

    before_action :authenticate_user! 


     def index 

     require 'socket' 
     server = TCPServer.new ("127.0.0.1",8000) 
     loop do 
      Thread.start(server.accept) do |client| 
      client.puts "Hello !" 
      client.puts "Time is #{Time.now}" 
      client.close 
      end 
     end 
     @bookings = Booking.where(user: current_user).joins(:customer, :driver, :car) 
     @customers = Customer.where(user: current_user) 
     end 
end` **** 

, wenn ich diese bekam

i lief
<html> 
    <head> 
    <meta charset='utf-8'> 
    <title>Error 502 - Bad Gateway</title> 
    <link rel="stylesheet" type="text/css" href="https://cdn.c9.io/errors/style.css" /> 
    <style type="text/css"> 
    .error_content { 
     background: rgba(255, 255, 255, 0.23); 
     padding: 10px; 
     width: 641px; 
     margin: 25px 0; 
     display: none; 
    } 

    #error-msg { 
     display: block; 
    } 
    </style> 
    </head> 
    <body class="errorUnknown light"> 
    <div id="wrapper"> 
     <h1>Error 502 - Bad Gateway</h1> 
     <div class="error_content" id="error-msg"> 
      <p>Please click <a href="javascript:location.reload(true)">here</a> to try again, if the issue persists please contact <a href="https://c9.io/support">support</a></p> 
     </div> 

     <a href="http://status.c9.io">Status Page</a> | 
     <a href="https://c9.io/support">Support</a> | 
     <a href="https://c9.io/dashboard.html">Dashboard</a> | 
     <a href="https://c9.io">Home</a> 
    </div> 
    </body> 
</html> 

Bitte, hilf mir, wie dieses Problem zu lösen .. Vielen Dank im Voraus.

+1

Ihre Rails-App wird bereits auf einem TCP-Server ausgeführt, andernfalls konnten Sie eine Seite in einem Browser nicht öffnen. Das heißt, Sie haben versucht, einen TCP-Server in einer Anfrage an einen anderen TCP-Server zu starten. Außerdem läuft dieser Server in einer Schleife und wird niemals zurückkehren ... Mein Rat ist: Schließe diese Frage und starte eine neue und erkläre, was du erreichen willst. Welche Art von Daten müssen in welche Richtung übertragen werden, welche Dokumentation haben Sie? Das sieht für mich wie ein [xy-Problem] aus (http://meta.stackexchange.com/a/66378/284887). – spickermann

+0

ok..ich werde es tun. Wie man Daten sieht (es ist in Hexadezimalzahl) Empfangen von unserem Server (wir Baustein) von Gerät –

+0

Dies scheint die folgende Frage zu sein: https://StackOverflow.com/questions/39284765/ruby-on-rails-how -to-use-tcp-socket-to-connect-mit-gps-gerät – spickermann

Antwort

2

Sie gehen in eine Endlosschleife in der Aktion. Die Anfrage vom Reverse-Proxy an Ihren Rails-Server läuft ab. Der Reverse-Proxy sendet eine Fehlermeldung (502) an den Browser.

+0

ich entfernte loop ..then auch gleichen fehler. –

+1

Dann verbindet sich kein Client mit 127.0.0.1:8080 und den^accept'call Blöcken, nehme ich an. Folgen Sie dem Ratschlag von @ spickermann und öffnen Sie eine neue Frage, in der Sie beschreiben, was Sie erreichen möchten. Ihre aktuelle Lösung scheint kaputt zu sein. –

+0

okay.please sagen Sie mir, wie man Daten (es ist in Hexadezimalzahl) von unserem Server (wir Ziegel) von GPS-Gerät empfangen –