前段時間我發現了Joe Armstrong在Erlang和websocket上的例子,但是我無法得到它的工作。Erlang和websocket
我在Erlang代碼中修正了一個錯誤和一些警告,但是使用Apache我沒有得到一個好的結果。
任何人都可以給我一些提示一個非常簡單的例子嗎?我是否需要將網頁與Apache目錄中的JavaScript一起放入正常的PHP文件中?
前段時間我發現了Joe Armstrong在Erlang和websocket上的例子,但是我無法得到它的工作。Erlang和websocket
我在Erlang代碼中修正了一個錯誤和一些警告,但是使用Apache我沒有得到一個好的結果。
任何人都可以給我一些提示一個非常簡單的例子嗎?我是否需要將網頁與Apache目錄中的JavaScript一起放入正常的PHP文件中?
Joe的websocket示例已過時,並依賴於該協議的過時版本。最新的瀏覽器使用更新的版本(draft-00)
截至今天,從misultin可以得到一個很好的erlang實現。經過測試,與當前的瀏覽器:
https://github.com/ostinelli/misultin/blob/master/src/misultin_websocket.erl
Misultin已被關閉 - 這是一個恥辱,這是一個很好的框架。 – 2012-06-01 11:24:47
的Yaws網絡服務器提供的WebSocket實現。我還寫了一個行爲來簡化基於ws的應用程序的編寫。這是我的Erlang工具(當然,第一個在事實)部分:
我發現SockJS-Erlang庫工作特棒。最重要的是,如果websocket不可用,它支持後備傳輸。它使用Cowboy(雖然是舊版本)作爲底層服務器,因爲它易於集成,所以它很不錯。 This escript和this HTML page會給你一個你可以玩的工作演示。
這裏是一個註釋例如:
start_link(_) ->
application:start(sockjs),
application:start(cowboy),
% generate a SockJS handler
SockjsState = sockjs_handler:init_state(
<<"/browser_socket">>, fun handle_client/3, state, []),
% build the dispatch routes for Cowboy integrating the SockJS handler
Routes = [{'_', [{[<<"echo">>, '...'],
sockjs_cowboy_handler, SockjsState}]}],
% start the cowboy server
cowboy:start_listener(http, 100,
cowboy_tcp_transport, [{port, 8081}],
cowboy_http_protocol, [{dispatch, Routes}]),
% called when a new client connects
handle_client(Conn, init, state) -> {ok, state};
% called when data is received
handle_client(Conn, {recv, Data}, state) ->
% reply to client
Conn:send(Data);
% called when connection is closed
handle_client(_Conn, closed, state) -> {ok, state}.
我關於Apache的建議是使用HAProxy的爲你的WebSocket連接和Apache的服務JavaScript和PHP。
這是很難給出任何好的建議,頭腦中的問題模糊。有三個部分:1. Erlang代碼,2. JavaScript代碼,3. Apache及其配置。你可能想分解這個問題,併爲每一個問題尋求幫助。 – 2010-11-22 14:43:07
是的,你是對的,我正在尋找一個非常簡單的例子,網頁和erlang ...在喬的例子 – pdn 2010-11-22 15:40:14