2010-11-22 8 views
3

以前、私はJoe ArmstrongのErlangとWebSocketのサンプルを見つけましたが、うまく動作しませんでした。Erlangとwebsockets

Erlangコードではエラーと2つの警告が修正されましたが、Apacheでは良い結果が得られませんでした。

本当に簡単な例がありますか?通常のPHPファイルと同じように、Apacheディレクトリ内にJavaScriptを含むWebページを置く必要がありますか?

+1

問題の漠然としたアドバイスを心に銘じるのはむしろ難しいです。 3つの部分があります:1. Erlangコード、2. JavaScriptコード、3. Apacheとその設定。問題を解消し、問題ごとに具体的なヘルプを得ることができます。 –

+0

はい、私は両方のウェブページとerlangの本当に簡単な例を探していました...ジョーの例のように – pdn

答えて

8

Joeのwebsocketの例は古く、プロトコルの古いバージョンに依存しています。最新のブラウザではより新しいバージョン(ドラフト-00)を使用しています

今日の時点では、うれしいerlangの実装がmisultinから利用可能です。試験および現在のブラウザと互換性:

https://github.com/ostinelli/misultin/blob/master/src/misultin_websocket.erl

+2

Misultinはシャットダウンされました.-それはすてきなフレームワークでした。 –

8

Yawsウェブサーバは、WebSocketの実装を提供します。私はまた、wsベースのアプリケーションの記述を簡略化するための動作を記述しました。それは私のErlangツール(まあ、実際には最初の1)の一部です:

https://github.com/schemeway/erlang-tools

3

私がすばらしくうまく動作するようにSockJS-Erlangライブラリを見つけました。ウェブソケットが利用できない場合、フォールバック転送をサポートしています。それはCowboy(古いバージョンですが)を基になるサーバーとして使用しています。これは、統合が容易であるためです。 This escriptthis HTML pageは、お手伝いできるデモをお届けします。ここ

は注釈付きの例です:Apacheのに関する

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}. 

私のアドバイスは、JavascriptとPHPを提供するためにあなたのWebSocketコネクションとApacheのためHAProxyを使用することです。