`
wufoxfm95
  • 浏览: 49686 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

erlang websocket 练习

阅读更多
周末有空试了一下websocket 下面是我的代码
chat.erl

-module(chat).
-compile(export_all).

start() ->
	case gen_tcp:listen(8080,[binary, {packet, 0}, {active, true}, {reuseaddr, true}, {packet_size,1024*2},{keepalive,true}]) of
        {ok, Listen} -> 
            spawn(fun() -> par_connect(Listen) end);
        _Err -> 
            io:format("Accept connections failed:~w~n",[_Err])          
    end.

par_connect(Listen) ->
   {ok, Socket} = gen_tcp:accept(Listen),
   spawn(fun() -> par_connect(Listen) end),
   wait(Socket).

wait(Socket) ->
   receive
       {tcp, Socket, Bin} ->
		   io:format("received:~ts~n",[binary_to_list(Bin)]),
           gen_tcp:send(Socket, websockets:handshake(Bin)),
           loop(Socket);
       Any ->
           io:format("Received:~p~n",[Any]),
           wait(Socket)
   end.

loop(Socket) ->
   receive
       {tcp, Socket, Data} ->		  
           io:format("received:~ts~n",[binary_to_list(Data)]),
		   gen_tcp:send(Socket, [Data]),
           loop(Socket);
       Any ->
           io:format("Received:~p~n",[Any]),		   
           loop(Socket)
   end.



websockets.erl  负责连接验证应答处理 是网上找的

注意:目前只有 google chrome支持websocket
分享到:
评论
1 楼 z164842654 2012-05-26  
你写的东西能运行吗???

相关推荐

    erlang websocket

    Erlang Websocket详解:构建实时通信应用 在IT领域,Erlang作为一种并发和分布式计算的编程语言,因其在高可用性和实时性上的优势,常用于构建电信、实时系统和互联网服务。Websocket作为互联网协议,允许双向通信...

    在erlang项目中使用protobuf例子

    标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...

    erlang 入门练习

    本文将通过"erlang 入门练习"的案例,探讨Erlang的基础知识和应用。 首先,让我们从`client.erl`这个文件名入手。在Erlang中,`.erl`文件是源代码文件,包含了Erlang的模块定义和函数实现。`client`可能表示一个...

    [Erlang] Erlang 开发练习曲 (英文版)

    [奥莱理] Erlang 开发练习曲 (英文版) [奥莱理] Etudes for Erlang (E-Book) ☆ 出版信息:☆ [作者信息] J.David Eisenberg [出版机构] 奥莱理 [出版日期] 2013年03月20日 [图书页数] 128页 [图书语言] 英语...

    erlang入门级练习:LeetCode OJ问题的部分erlang 源码

    我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...

    wsserver:Erlang WebSockets服务器

    ### About这是一个用Erlang编写的简单WebSocket服务器。 它利用库 (实现 )来完成所有WebSocket编码/解码。 ###用法 #### Starting要启动wsserver,只需传递所需的选项。 该选项是: 端口号。 将处理连接的...

    wsock:用于构建 WebSocket 客户端和服务器的 Erlang 库

    #WSOCK作者执照 关于Wsock 是一组模块,可用于构建 Websockets(符合RFC 6455 )客户端和服务器。 例子wsserver (WebSockets 服务器)和wsecli (WebSockets 客户端)是使用 wsock 的项目。 写客户端不要忘记包含 ...

    erlang简单聊天练习

    "erlang简单聊天练习"是一个使用Erlang语言实现的轻量级聊天应用示例,它展示了Erlang在并发通信、分布式系统和容错性方面的优势。通过学习和实践这个项目,开发者可以更好地理解和掌握Erlang的基础知识,以及如何...

    Erlang入门:构建application练习2

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。在本教程中,我们将深入探讨如何使用Erlang构建一个名为"Application"的基本应用程序,这在...

    Erlang入门:构建application练习5(监督树)

    在这个"Erlang入门:构建application练习5(监督树)"中,我们将探讨如何构建一个包含监督树的应用,这是Erlang OTP(开放电信平台)设计模式中的核心部分。 监督树是Erlang OTP设计原则的重要组成部分,它用于管理...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    Erlang入门:构建application练习4(进程link的作用)

    在Erlang编程语言中,进程是其核心特性之一,它们是并发执行的实体,类似于其他语言中的线程。在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过...

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...

    erlang资源

    这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入理解和学习Erlang语言的关键资料。 《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发...

Global site tag (gtag.js) - Google Analytics