socketio icon indicating copy to clipboard operation
socketio copied to clipboard

socket-io (client): Developing a SocketIO Client

Open njones opened this issue 3 years ago • 0 comments

Proposal: Adding a SocketIO Client

Author(s): Nika Jones (@njones)

Last updated: 2022-Aug-27

Abstract

The SocketIO library should have a client developed alongside the server. This will allow backend services developed in Go the ability to call any SocketIO server implementation.

Background

Although the general SocketIO client use case is from a browser, which can't natively run Go. However there are lots of situations where a backend service could use a client to talk to a SocketIO server.

Examples:

  • The server is forwarding chat messages or used as a bot for a chat service
  • Testing of a SocketIO service

Proposal

Create a Client object. (The zero defaults should be valid)

client = NewClient(options...) <*Client>

or

client = &Client{} 

Rationale

The simplest Client is one that can have .On and .Emit with a Dialer that can have any transport necessary.

Implementation

  1. Create the client object
  2. Flesh out the OnConnect, OnDisconnect, On and Emit handlers
  3. Make sure that a replacement Transport or Dialer works
  4. Test the client
  5. Release

njones avatar Aug 27 '22 18:08 njones