Próbuję zbudować aplikację do czatu wyłącznie za pomocą Rubiego. Istnieje wcześniej opublikowany numer similar question, ale mam inne i powiązane zapytania. Spojrzałem na this example (To samo, co osoba, która wysłała podobne pytanie wcześniej). Kod w tym przykładzie nie działa dla mnie. Po uruchomieniu skryptu ruby na terminalu i po połączeniu się z adresem URL: http://localhost:1234 w przeglądarce, w nieskończoność napotykam komunikat "Transfer danych z localhost ...".Budowanie aplikacji czatu przy użyciu Ruby
Tutaj 1234 to numer portu użyty w podanym przykładzie. Nie jestem w stanie dowiedzieć się, co jest przyczyną mojego nieudanego biegu. Być może muszę podać coś w linii poleceń podczas wykonywania skryptu lub mam rozpocząć chat (wyjście wejściowe) przez inne miejsce (prawdopodobnie przeglądarkę). Nie jestem w stanie dowiedzieć się, co dokładnie robić. Czy możesz mi pomóc w tej sprawie?
Używam kodu serwera czat prawie niezmodyfikowany. Używam usługi internetowej i serwera czatu na tym samym hoście.
Udało mi się częściowo uzyskać kod działający dla mnie do momentu rozpoczęcia pętli. Zmieniony kod, który pracował dla mnie do pewnego momentu, jest podany poniżej.
require 'gserver'
class BasicServer < GServer
def initialize(*args)
super(*args)
# Keep an overall record of the client IDs allocated
# and the lines of chat
@@client_id = 0
@@chat = []
end
def serve(io)
# io.puts("Hello world!")
# Increment the client ID so each client gets a unique ID
@@client_id += 1
my_client_id = @@client_id
my_position = @@chat.size
# io.puts(@@chat.size)
# Give the total number of people who are currently on chat.. for e.g. 0 => 1 person on chat
# Leave a message on the chat queue to signify this client
# has joined the chat
@@chat << [my_client_id, ""]
# io.puts(@@chat)
end
end
server = BasicServer.new(1234)
server.start
#sleep 120
#server.shutdown
Dla każdej instancji przeglądarki nowy klient jest połączony z kolejką czatu (mają unikatowy identyfikator klienta, aby je zidentyfikować). Chciałem ponownie użyć kodu w przykładzie, dodając pole tekstowe (coś podobnego do tego, czego używamy w html) do działających instancji przeglądarki, w którym użytkownik (użytkownicy) może wprowadzić wiadomość i opublikować ją za pomocą kliknięcia przycisku przycisk (który jest również zintegrowany z przeglądarką). Odbija się to we wszystkich innych instancjach przeglądarki różnych klientów, a czat trwa tak długo, aż użytkownicy wprowadzą ciąg "zakończ", aby wyjść z pokoju rozmów.
Nie jestem pewien, jak zaimplementować powyższą funkcję również w Ruby, wszelkie sugestie i powiązane artykuły do odsyłania byłyby naprawdę pomocne.
Wielkie dzięki!
Witam .. dziękuję za cierpliwość i również dziękuję za odpowiedź .. !!. Po pewnym czasie zdałem sobie sprawę, że faktycznie wdrażam serwer tcp, a nie serwer WWW, więc nie byłbym w stanie uzyskać tego, co chciał. – boddhisattva
To jest to, co mogę zbudować jako aplikację do czatowania: - http://boddhisattvadedicates.blogspot.in/2011/08/chat-application-using-ruby.html – boddhisattva