You are on page 1of 2

Given Project: to convert a mongoose websocket broadcast chat application into a

peer to peer application.


learned:

websocket libraries of mongoose


c++ socket programming
the concepts of networking in real world such as(peer to peer , broadcasting , web
server host , client etc)

want to learn:- node.js and javascript integration with mongoose web server

=> basic concept of design :

struct mg_mgr is an event manager that holds all active connections


struct mg_connection describes a connection
struct mbuf describes data buffer (received or sent data)
Connections could be either listening, outbound or inbound. Outbound connections
are created by the mg_connect() call.
Listening connections are created by the mg_bind() call. Inbound connections are
those accepted by a listening connection.
Each connection is described by the struct mg_connection structure, which has a
number of fields like socket, event handler function, send/receive buffer, flags,
etc.

An application that uses mongoose should follow a standard pattern of event-driven


application:

declare and initialise event manager:

struct mg_mgr mgr;


mg_mgr_init(&mgr, NULL);

Create connections. For example, a server application should create listening


connections:

struct mg_connection *c = mg_bind(&mgr, "80", ev_handler_function);


mg_set_protocol_http_websocket(c);

create an event loop by calling mg_mgr_poll() in a loop:

for (;;) {
mg_mgr_poll(&mgr, 1000);
}

mg_mgr_poll() iterates over all sockets, accepts new connections, sends and
receives data, closes connections and calls event handler functions for the
respective events. For the full example, see Usage Example which implements TCP
echo server.

You might also like