周末有空试了一下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
分享到:
相关推荐
Erlang Websocket详解:构建实时通信应用 在IT领域,Erlang作为一种并发和分布式计算的编程语言,因其在高可用性和实时性上的优势,常用于构建电信、实时系统和互联网服务。Websocket作为互联网协议,允许双向通信...
标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...
本文将通过"erlang 入门练习"的案例,探讨Erlang的基础知识和应用。 首先,让我们从`client.erl`这个文件名入手。在Erlang中,`.erl`文件是源代码文件,包含了Erlang的模块定义和函数实现。`client`可能表示一个...
[奥莱理] Erlang 开发练习曲 (英文版) [奥莱理] Etudes for Erlang (E-Book) ☆ 出版信息:☆ [作者信息] J.David Eisenberg [出版机构] 奥莱理 [出版日期] 2013年03月20日 [图书页数] 128页 [图书语言] 英语...
我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...
### About这是一个用Erlang编写的简单WebSocket服务器。 它利用库 (实现 )来完成所有WebSocket编码/解码。 ###用法 #### Starting要启动wsserver,只需传递所需的选项。 该选项是: 端口号。 将处理连接的...
#WSOCK作者执照 关于Wsock 是一组模块,可用于构建 Websockets(符合RFC 6455 )客户端和服务器。 例子wsserver (WebSockets 服务器)和wsecli (WebSockets 客户端)是使用 wsock 的项目。 写客户端不要忘记包含 ...
"erlang简单聊天练习"是一个使用Erlang语言实现的轻量级聊天应用示例,它展示了Erlang在并发通信、分布式系统和容错性方面的优势。通过学习和实践这个项目,开发者可以更好地理解和掌握Erlang的基础知识,以及如何...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。在本教程中,我们将深入探讨如何使用Erlang构建一个名为"Application"的基本应用程序,这在...
在这个"Erlang入门:构建application练习5(监督树)"中,我们将探讨如何构建一个包含监督树的应用,这是Erlang OTP(开放电信平台)设计模式中的核心部分。 监督树是Erlang OTP设计原则的重要组成部分,它用于管理...
**Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...
Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...
在Erlang编程语言中,进程是其核心特性之一,它们是并发执行的实体,类似于其他语言中的线程。在Erlang中,进程间通信(IPC)是通过消息传递来实现的,而`link`机制是这个通信模型中非常重要的一部分。本教程将通过...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...
Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...
这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入理解和学习Erlang语言的关键资料。 《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发...