s2s: chat()