diff --git a/socketty/socketty-tests.ts b/socketty/socketty-tests.ts new file mode 100644 index 0000000000..22809a6b06 --- /dev/null +++ b/socketty/socketty-tests.ts @@ -0,0 +1,24 @@ +/// + +/* Server */ + +var httpServer = {}; // Assume it's a real HTTP server object + +var webSocketServer = socketty.createServer(httpServer); + +webSocketServer.connection((socket: SockettySocket) => { + console.log('Client connected'); + socket.on('msg', (message?: any) => { + console.log('Client said' + message); + }); + socket.disconnect(() => { + console.log('Goodbye, client!'); + }); +}); + +/* Client */ + +socketty.connect('ws://localhost:8080', (socket: SockettySocket) => { + console.log('Connected !'); + socket.send('msg', 'Hello server!'); +}); diff --git a/socketty/socketty.d.ts b/socketty/socketty.d.ts new file mode 100644 index 0000000000..da7f825071 --- /dev/null +++ b/socketty/socketty.d.ts @@ -0,0 +1,57 @@ +// Type definitions for Socketty v0.2.2 +// Project: https://www.npmjs.com/package/socketty +// Definitions by: Nax +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare var socketty: Socketty; + +declare module 'socketty' { + export = socketty; +} + +interface Socketty { + /** + * Connect to a socketty server. + * @param url The server url + * @param callback The callback to be run when the connection is open + * @return A Socket + */ + connect(url: string, callback: (socket: SockettySocket) => void): SockettySocket; + + /** + * Create a socketty server. + * @param httpServer The HTTP server to use + * @return A socketty server + */ + createServer(httpServer: any): SockettyServer; +} + +interface SockettySocket { + /** + * Listen for an action. + * @param action The action to listen to + * @param callback A callback to be run when the action is fired + */ + on(action: string, callback: (message?: any) => void): void; + + /** + * Send an action, as well as an optional message. + * @param action The action to send + * @param message The message to send + */ + send(action: string, message?: any): void; + + /** + * Specify a callback to be run when the socket is disconnected. + * @param callback The disconnect callback + */ + disconnect(callback: () => void): void; +} + +interface SockettyServer { + /** + * Specify a callback to be run when a new socket connects to the server. + * @param callback The callback + */ + connection(callback: (socket: SockettySocket) => void): void; +}