2011-10-22 73 views
3

我試圖從我的本地運行hereYAWS websocket示例。這是一個基本的基於ws的回聲服務器。YAWS Websocket問題

我有

  • YAWS設置和運行上localhost:8080(直接從Debian回購;除了將其指向新的根目錄中沒有CONF的變化)
  • this page底部的代碼清單包裹在保存爲websockets_example_endpoint.yaws
  • this page保存爲index.yaws<erl>標籤(我簡直複製/粘貼的觀點,它的源代碼,它保存爲文件,並在localhost:8080指出插座的要求,而不是yaws.hyber.org)。

當我在瀏覽器中訪問localhost:8080/websockets_example_endpoint.yaws時,它會顯示文字「您不是網絡套接字客戶端!走開!」,如預期的那樣。當我訪問localhost:8080時,它指向啓用javascript的表單,但單擊時「連接」按鈕不起作用。如果我將index.yaws指向yaws.hyber.org而不是localhost:8080,那麼echo服務器將按照預期連接並工作。

任何人都可以給我一個暗示我做錯了什麼(或者,指出我來源的工作示例)?

回答

3

有一個gitbub項目,我創建:
https://github.com/f3r3nc/yaws-web-chat/

這也是嵌入雅司病的例子,與羣聊延長。

請注意,WebSocket的標準正在開發中,因此雅各布和瀏覽器應該支持相同的WS版本才能正常工作。

雅虎1.91適用於Safari 5.1.1版(6534.51.22),但不適用於Chrome(15.0.874.102),可能不適用於(14.x)。

+0

''c'ing文件,然後運行'ybed_sup:start_link()。'給我'=錯誤報告==== 2011年10月28日:: 13:55:52 === 錯誤處理<0.52.0>退出值:{undef,[{yaws_api,embedded_start_conf,[「/ tmp/yawstest」,[{port,7000},{listen,{0,0,0,0}},{docroot,「/ tmp/yawstest 「},{appmods,[{」/「,hello}]}] [[id,」embedded「}],」embedded「]},{ybed,run,0}]}'那就是將yaws_api'include'指向我係統上的實際yaws_api.hrl文件) – Inaimathi

+0

謝謝,我將它添加到README – f3r3nc

0

對我來說,問題是我沒有basic_echo_callback模塊文件,因爲我使用包存儲庫安裝了雅各而不是構建表單源。

=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 

礦似乎是如果運行在交互模式'yaws -i'雅司病

錯誤是顯而易見的:

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

確保endpoi NT是在客戶端正確:

vim www/websockets_example.yaws 
... 

停止服務器,如果已經運行,並與'yaws -i'啓動服務器並瀏覽到:http://localhost:8000/websockets_example.yaws

它的工作原理,因爲每次服務器加載配置文件,它會編譯指定的src目錄中的任何模塊。如果其他模塊缺少其他功能,則還需要下載。