Update websocketchat Example
This commit is contained in:
parent
6664b14621
commit
3ad8e9a588
Binary file not shown.
@ -45,10 +45,8 @@ void unicast(struct mg_connection *nc, const struct mg_str msg) {
|
|||||||
|
|
||||||
//strcpy(tmp,msg.p);
|
//strcpy(tmp,msg.p);
|
||||||
snprintf(tmp, sizeof(tmp), "%.*s",(int)msg.len, msg.p);
|
snprintf(tmp, sizeof(tmp), "%.*s",(int)msg.len, msg.p);
|
||||||
printf("%s",tmp);
|
|
||||||
recipient = strtok(tmp," ");
|
recipient = strtok(tmp," ");
|
||||||
actual_msg = strtok(NULL,"\0");
|
actual_msg = strtok(NULL,"\0");
|
||||||
printf("%s<%s\n",recipient,actual_msg);
|
|
||||||
snprintf(buf, sizeof(buf), "%s:%s : %s",addr, nc->floID,actual_msg);
|
snprintf(buf, sizeof(buf), "%s:%s : %s",addr, nc->floID,actual_msg);
|
||||||
printf("%s<-%s\n",recipient, buf); /* Local echo. */
|
printf("%s<-%s\n",recipient, buf); /* Local echo. */
|
||||||
for (c = mg_next(nc->mgr, NULL); c != NULL; c = mg_next(nc->mgr, c)) {
|
for (c = mg_next(nc->mgr, NULL); c != NULL; c = mg_next(nc->mgr, c)) {
|
||||||
@ -61,7 +59,7 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
|||||||
switch (ev) {
|
switch (ev) {
|
||||||
case MG_EV_WEBSOCKET_HANDSHAKE_DONE: {
|
case MG_EV_WEBSOCKET_HANDSHAKE_DONE: {
|
||||||
/* New websocket connection. Tell everybody. */
|
/* New websocket connection. Tell everybody. */
|
||||||
//broadcast(nc, mg_mk_str("++ joined"));
|
broadcast(nc, mg_mk_str("++ joined"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MG_EV_WEBSOCKET_FRAME: {
|
case MG_EV_WEBSOCKET_FRAME: {
|
||||||
@ -69,7 +67,8 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
|||||||
/* New websocket message. Tell everybody. */
|
/* New websocket message. Tell everybody. */
|
||||||
struct mg_str d = {(char *) wm->data, wm->size};
|
struct mg_str d = {(char *) wm->data, wm->size};
|
||||||
if (d.p[0] == '$'){
|
if (d.p[0] == '$'){
|
||||||
strcpy(nc->floID,&d.p[1]);
|
snprintf(nc->floID, sizeof(nc->floID), "%.*s",(int)d.len-1, &d.p[1]);
|
||||||
|
broadcast(nc, mg_mk_str(nc->floID));
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
unicast(nc, d);
|
unicast(nc, d);
|
||||||
@ -83,7 +82,7 @@ static void ev_handler(struct mg_connection *nc, int ev, void *ev_data) {
|
|||||||
case MG_EV_CLOSE: {
|
case MG_EV_CLOSE: {
|
||||||
/* Disconnect. Tell everybody. */
|
/* Disconnect. Tell everybody. */
|
||||||
if (is_websocket(nc)) {
|
if (is_websocket(nc)) {
|
||||||
//broadcast(nc, mg_mk_str("-- left"));
|
broadcast(nc, mg_mk_str("-- left"));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user