[환경설정] Erlang 을 이용한 간단한 메시징 서비스 구현
본문
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