YAWS Websocket Trouble - PullRequest
       28

YAWS Websocket Trouble

2 голосов
/ 23 октября 2011

Я пытаюсь получить пример YAWS websocket из здесь , работающий на моем локальном компьютере.Это базовый эхо-сервер на основе ws.

У меня есть

  • YAWS, настроенный и работающий на localhost:8080 (прямо из репозитариев Debian; никаких изменений настроек, кроме указания на негоновый корневой каталог)
  • список кодов снизу этой страницы , завернутый в <erl> теги, сохраненные как websockets_example_endpoint.yaws
  • эта страница сохранен как index.yaws (я буквально скопировал / вставил для него источник представления, сохранил его как этот файл и указал запрос сокета на localhost:8080, а не yaws.hyber.org).

Когда япосетите браузер localhost:8080/websockets_example_endpoint.yaws в браузере, в нем отображается текст «Вы не являетесь клиентом веб-сокетов! Уходите!», как и ожидалось.Когда я захожу на localhost:8080, он указывает на форму с включенным javascript, но кнопка «Подключиться» ничего не делает при нажатии.Если я оставлю index.yaws указанным на yaws.hyber.org вместо localhost:8080, эхо-сервер подключится и будет работать точно так, как ожидается.

Может кто-нибудь подсказать мне, что я делаю неправильно (или, альтернативно,, укажите мне источник для рабочего примера)?

Ответы [ 2 ]

2 голосов
/ 26 октября 2011

Существует проект gitbub, который я создал:
https://github.com/f3r3nc/yaws-web-chat/

Это также пример встраивания рысканий и расширения в групповом чате.

Обратите внимание, чтоСтандарт WebSocket находится в стадии разработки, поэтому yaws и браузер должны поддерживать ту же версию WS для правильной работы.

yaws 1.91 работает с Safari версии 5.1.1 (6534.51.22), но не с Chrome (15.0).874.102) и, вероятно, не с (14.x).

0 голосов
/ 08 декабря 2016

Для меня проблема была в том, что у меня не было файла модуля basic_echo_callback, потому что я установил yaws, используя репозиторий пакетов, а не создавал источник формы.

Ошибка была очевидна, если запуск yaws в интерактивном режиме ´yaws -i´:

=ERROR REPORT==== 7-Dec-2016::21:33:49 ===
Cannot load callback module 'basic_echo_callback': nofile
=ERROR REPORT==== 7-Dec-2016::21:33:49 ===
Failed to start websocket process: nofileq

Это в значительной степени мой процесс с нуля в Ubuntu 16.01:

sudo apt install yaws
cd ~
mkdir yaws
cd yaws

mkdir src
cd src
cd src wget https://github.com/klacke/yaws/raw/master/examples/src/basic_echo_callback.erl
cd ..

mkdir www
cd www
wget https://raw.githubusercontent.com/klacke/yaws/master/www/websockets_example_endpoint.yaws
wget http://yaws.hyber.org/websockets_example.yaws
cd ..

#set-up server config file...
vim yaws.conf

Моя выглядит так:

src_dir = /home/pocketsand/yaws/src
<server localhost>
  port = 8000
  listen = 127.0.0.1
  docroot = /home/pocketsand/yaws/www
</server>

Убедитесь, что конечная точка правильна в клиенте:

vim www/websockets_example.yaws
...

Остановите сервер, если он уже запущен, и запустите сервер с помощью 'yaws -i' и перейдите к: http://localhost:8000/websockets_example.yaws

Это работает, потому что каждый разСервер загружает файл конфигурации, он скомпилирует все модули в указанном каталоге src.Если для других функций отсутствуют другие модули, их также необходимо загрузить.

...