Erlang和websockets

Erlang和websockets,erlang,websocket,Erlang,Websocket,不久前,我在Erlang和websocket上找到了Joe Armstrong的例子,但我无法让它工作 我修复了Erlang代码中的一个错误和几个警告,但是使用Apache时,我无法得到一个好的结果 有谁能用一个简单的例子给我一些提示吗?对于普通PHP文件,我是否需要将带有JavaScript的网页放在Apache目录中?Joe的websocket示例已经过时,并且依赖于过时的协议版本。最新浏览器使用最新版本(draft-00) 今天,misultin提供了一个很好的erlang实现。已测试并与

不久前,我在Erlang和websocket上找到了Joe Armstrong的例子,但我无法让它工作

我修复了Erlang代码中的一个错误和几个警告,但是使用Apache时,我无法得到一个好的结果


有谁能用一个简单的例子给我一些提示吗?对于普通PHP文件,我是否需要将带有JavaScript的网页放在Apache目录中?

Joe的websocket示例已经过时,并且依赖于过时的协议版本。最新浏览器使用最新版本(draft-00)

今天,misultin提供了一个很好的erlang实现。已测试并与当前浏览器兼容:

Web服务器提供了websocket实现。我还编写了一个行为来简化基于ws的应用程序的编写。这是我的Erlang工具的一部分(实际上是第一个):

我发现这个库工作得非常好。最重要的是,如果WebSocket不可用,它支持回退传输。它使用(尽管是旧版本)作为基础服务器,这很好,因为它很容易与集成。并将给你一个工作演示,你可以玩

以下是一个带注释的示例:

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}.
start\u链接(\u)->
应用:启动(sockjs),
应用:启动(牛仔),
%生成一个SockJS处理程序
SockjsState=sockjs_处理程序:init_状态(
,fun handle_client/3,state,[]),
%为整合SockJS处理程序的牛仔构建调度路线
路由=[{'''.',[{[,'.''.'],
sockjs_牛仔_handler,SockjsState}]},
%启动牛仔服务器
牛仔:开始收听(http,100,
牛仔运输公司,[{港口,8081}],
cowboy_http_协议,[{调度,路由],
%当新客户端连接时调用
handle_client(Conn,init,state)->{ok,state};
%接收数据时调用
handle_client(Conn,{recv,Data},state)->
%回复客户
连接:发送(数据);
%连接关闭时调用
handle_client(_Conn,closed,state)->{ok,state}。

关于Apache,我的建议是将HAProxy用于WebSocket连接,将Apache用于服务Javascript和PHP

考虑到问题的模糊性,给出任何好的建议都是相当困难的。全文共分三部分:1。Erlang代码,2。javascript代码,3。Apache及其配置。你可能想解决这个问题,并为每个问题获得具体的帮助。是的,你是对的,我正在寻找一个非常简单的webpage和erlang示例…就像joe的示例一样,Misultin已被关闭——这是一个很遗憾的框架。