Erlang 을 이용한 간단한 메시징 서비스 구현 > ERLANG

본문 바로가기

ERLANG

[환경설정] Erlang 을 이용한 간단한 메시징 서비스 구현

profile_image
devmania
23-06-14 16:19 430 0

본문

Erlang을 이용한 간단한 메시징 서비스의 예를 들어볼 수 있습니다. 

아래의 코드는 간단한 메시징 서버를 구현한 것으로, 이 서버는 메시지를 받아서 저장하고, 요청이 있을 때 메시지를 전달합니다.


먼저 메시지 서버 모듈인 message_server.erl을 작성해봅시다:


erlang

-module(message_server).

-export([start/0, send/1, receive/0]).


start() -> 

  spawn(fun loop/0).


loop() -> 

  receive

    {From, Message} -> 

      io:format("~p received ~p~n", [self(), {From, Message}]),

      loop();

    stop ->

      ok

  end.


send(Message) ->

  Pid = whereis(message_server),

  Pid ! {self(), Message}.


receive() ->

  receive

    Message -> Message

  end.


위의 코드를 message_server.erl로 저장하고, erl 셸에서 다음과 같이 컴파일하고 실행할 수 있습니다:


shell

1> c(message_server).

{ok,message_server}

2> register(message_server, message_server:start()).

true

3> message_server:send("Hello, World!").

<0.89.0> received {<0.88.0>,"Hello, World!"}

ok


위의 예제에서 message_server:start()는 새로운 메시지 서버를 시작하고, register/2를 사용하여 이 서버에 message_server라는 이름을 부여합니다. 

그런 다음, message_server:send/1를 호출하여 메시지를 전송하며, 이 메시지는 메시지 서버에 의해 출력됩니다.


이 코드는 매우 간단한 예제로, 실제 메시징 시스템에서는 보다 복잡한 요구 사항을 처리해야 할 수 있습니다. 

예를 들어, 실제 시스템에서는 메시지를 영구적으로 저장하거나, 여러 클라이언트로 메시지를 전달하거나, 실시간으로 클라이언트 간에 메시지를 중계하는 등의 기능이 필요할 수 있습니다.


댓글목록0

등록된 댓글이 없습니다.
게시판 전체검색
다크모드