YAWS Websocket Trouble



我正试图从这里获得YAWS websocket示例在我的本地运行。这是一个基本的基于web的echo服务器。

我有

  • YAWS设置并运行在localhost:8080上(直接从Debian仓库);除了将它指向一个新的根目录外,没有任何配置更改)
  • 本页底部用<erl>标签包装的代码清单,保存为websockets_example_endpoint.yaws
  • 此页面保存为index.yaws(我从字面上复制/粘贴了它的视图源,将其保存为该文件,并将套接字请求指向localhost:8080而不是yaws.hyber.org)。

当我在浏览器中访问localhost:8080/websockets_example_endpoint.yaws时,它显示文本"您不是web sockets客户端!"走开!"当我访问localhost:8080时,它指向启用javascript的表单,但单击"连接"按钮时什么也不做。如果我让index.yaws指向yaws.hyber.org而不是localhost:8080,则echo服务器连接并完全按预期工作。

谁能给我一个提示,我做错了什么(或者,指向我的源代码一个工作的例子)?

我创建了一个github项目:
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)。

对我来说,问题是我没有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目录下的任何模块。如果其他模块缺少其他功能,它们也需要下载。

相关内容

  • 没有找到相关文章

最新更新