Я пытаюсь создать приложение чата исключительно с использованием Ruby.Существует похожий вопрос , опубликованный ранее, но у меня есть разные и похожие запросы.Я посмотрел на этот пример (То же, что указано человеком, который ранее опубликовал аналогичный вопрос).Код в примере, кажется, не работает для меня.При запуске сценария ruby на терминале и подключении к URL-адресу: http://localhost:1234 в моем браузере я постоянно получаю сообщение «Перенос данных с локального хоста ...».
Здесь 1234 - номер порта, использованный в приведенном примере.Я не могу понять, в чем причина моей неудачной попытки.Может быть, мне нужно указать что-то в командной строке во время выполнения скрипта, или я должен начать чат (ввод ввода) через какое-то другое место (возможно, браузер).Я не могу понять, что именно делать.Не могли бы вы помочь мне с этим?
Я использую код сервера чата почти без изменений.Я использую веб-службу и сервер чата на одном хосте.
Мне удалось частично заставить работать код до того момента, когда начнется цикл.Модифицированный код, который работал для меня до определенного момента, приведен ниже.
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
Для каждого экземпляра браузера новый клиент подключается к очереди чата (у них есть уникальные идентификаторы клиентов для их идентификации).Я хотел повторно использовать код в примере, добавив текстовое поле (что-то похожее на то, что мы используем в html) к запущенным экземплярам браузера, где пользователь (и) может ввести свое сообщение и опубликовать его, например, с помощью нажатия кнопкикнопка (которая также встроена в браузер).Это отражается на всех других экземплярах браузера различных клиентов, и чат продолжается до тех пор, пока пользователи не введут строку «выход», чтобы выйти из комнаты чата.
Я не уверен, как реализовать вышеупомянутую функцию в Ruby, любые предложения или связанные статьи будут полезны.
Большое спасибо !!