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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值