Synapse chat protocol

greggirwin edited this page Feb 29, 2012 · 2 revisions

Documenting the synapse-chat protocol gives us a starting point for the OpenME protocol design.

User messages to server using ft-chat

; login to server

login username [string!]

Set user configuration ; setting email address

email email-address [email!]

; set city location

city city-name [string!]

; set language

language LG ( FR, EN )

; set status

status "STATE"

; set timezone

TIMEZONE zone [time!]

Send commands to server

; get the group names

GET groups ; show groups with message counts

returns all the groups so that the client updates the group display in list view

SHOW groups ; get all the messages since last recorded

one of those shows all the groups with message counts as a message

the server just resends all the messages ....

SYNC date-time [date!] ; can use yesterday,today,days and this is translated to a timestamp

if you want all messages over the last 10 days, they all start rolling in .. including private messages

Message types

;send a message to a channel

GCHAT channel-name username user-color message-text font-color [tuple!] background-color [tuple!] font-name

; send private chat

PCHAT [to-username] [ username user-color message-text font-color [tuple!] background-color [tuple!] font-name ]

Actions eg.send a file listing, nudge other user screen

ACTION [from-user:to-user ] [ some-action [string!]]

ACTION [ other-user ] [ "directory" molded-directory-listing ]

 does something to another user like ring bells, or nudges their screen to get their attention!

beer has a 8k message limit