2015-12-01 2 views
0

Я немного новичок в Ruby - будьте любезны!Ruby Websocket Issue

Я установил Ruby 1.9.3 на свой Windows-компьютер вместе с DevKit. Я внимательно следил за инструкциями по настройке devkit.

Затем я установил рубиновый камень для простого-WebSocket-клиента:

C:\DevKit>gem install websocket-client-simple 
Fetching: websocket-1.2.2.gem (100%) 
Fetching: event_emitter-0.2.5.gem (100%) 
Fetching: websocket-client-simple-0.2.4.gem (100%) 
Successfully installed websocket-1.2.2 
Successfully installed event_emitter-0.2.5 
Successfully installed websocket-client-simple-0.2.4 
3 gems installed 
Installing ri documentation for websocket-1.2.2... 
Installing ri documentation for event_emitter-0.2.5... 
Installing ri documentation for websocket-client-simple-0.2.4... 
Installing RDoc documentation for websocket-1.2.2... 
Installing RDoc documentation for event_emitter-0.2.5... 
Installing RDoc documentation for websocket-client-simple-0.2.4... 

C:\DevKit>``` 

До сих пор так хорошо.

Теперь я стараюсь использовать простой демонстрационный скрипт, показанный на странице GitHub для драгоценного камня:

require 'rubygems' 
require 'websocket-client-simple' 
ws = Websocket::Client::Simple.connect 'wss://WN72REA4.companyname.com:8181/channel' 

И я получаю: -

C:/Users/me/Documents/YY5/rubyscripts/websocket-demo.rb:4:in `<main>': uninitialized constant Websocket (NameError) 

Может кто-нибудь сказать мне, где я неправильно пожалуйста? Популяция вокруг я вижу несколько хитов для этой проблемы, но они в основном читаются так, как если бы они были исправлены проб и ошибок. Был бы признателен за любые советы о том, где я ошибаюсь.

Спасибо!

ответ

1

Мой первый вопрос не является ответом как таковым, но я хотел бы указать, что Ruby 1.9.3 OLD. текущий Ruby равен 2.2.3, и есть версия предварительного просмотра версии 2.3.0 ... Я рекомендую вам обновить до Ruby 2.2.3.

В ответ:

Вы проблема связана с тем, что рубин, как и большинство языков программирования, чувствителен к регистру.

Вы код использует Web сек ocket вместо Web S ocket (обратите внимание на капитал S) ... это, вероятно, следует прочитать:

ws = WebSocket::Client::Simple.connect 'wss://WN72REA4.companyname.com:8181/channel' 
+0

Привет Myst Спасибо за это. Я начал с Ruby 2.2.3, но когда я сталкивался с проблемами с драгоценными камнями (например, это), мне посоветовали попробовать 1.9.3 для совместимости. Изменение корпуса - как вы указали - помогает. Спасибо. Я должен был это заметить! Мой следующий вопрос, что я использую: ws.on: открытая сделать \t ws.send '{ "соединение-информация": {}}' конец Чтобы отправить JSON на сервер и с помощью: - ws.on: message do | msg | \t puts msg.data конец для обработки любых возвратов. В настоящий момент ничего не выводится. Снова любые советы оценили. Еще раз спасибо. – user3202399

+0

Привет. Всегда пожалуйста. Я хотел бы узнать, смогу ли я помочь с вашим вторым вопросом, но очень сложно прочитать и отладить свой код в комментарии. Может быть, вы могли бы разместить его в качестве второго вопроса и опубликовать ссылку здесь в комментарии? – Myst

+0

@ user3202399 P.S., примите любые ответы, которые отвечают на вопрос. Он отмечает вопрос как ответ, помогает будущим читателям, и это отличный способ дать положительные отзывы. – Myst