mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 23:07:06 +00:00
Merge pull request #34688 from DanielRose/socketcluster
Update sc-broker-cluster and socketcluster-server type definitions
This commit is contained in:
Vendored
+7
-7
@@ -69,9 +69,9 @@ export type mapperFunction = (keyChain: KeyChain, method: string, clientIds: num
|
||||
export class SCExchange extends AbstractDataClient {
|
||||
constructor(privateClientCluster: ClientCluster, publicClientCluster: ClientCluster, ioClusterClient: Client);
|
||||
|
||||
send(data: any, mapIndex: number | string | string[] | null, callback?: (err?: Error) => void): void;
|
||||
send(data: any, mapIndex: number | string | string[] | null, callback?: AsyncResultArrayCallback<any>): void;
|
||||
|
||||
publish(channelName: string, data: any, callback: (err?: Error) => void): void;
|
||||
publish(channelName: string, data: any, callback?: (err?: Error) => void): void;
|
||||
|
||||
subscribe(channelName: string): SCChannel;
|
||||
unsubscribe(channelName: string): void;
|
||||
@@ -146,12 +146,12 @@ export class Client extends EventEmitter {
|
||||
on(event: "ready", listener: () => void): this;
|
||||
on(event: "message", listener: (packet: MessagePacket) => void): this;
|
||||
|
||||
destroy(callback: AsyncResultArrayCallback<SCExchange>): void;
|
||||
destroy(callback?: AsyncResultArrayCallback<SCExchange>): void;
|
||||
|
||||
subscribe(channel: string, callback: (err?: Error) => void): void;
|
||||
unsubscribe(channel: string, callback: () => void): void;
|
||||
unsubscribeAll(callback: () => void): void;
|
||||
isSubscribed(channel: string, includePending: boolean): boolean;
|
||||
subscribe(channel: string, callback?: (err?: Error) => void): void;
|
||||
unsubscribe(channel: string, callback?: () => void): void;
|
||||
unsubscribeAll(callback?: AsyncResultArrayCallback<any>): void;
|
||||
isSubscribed(channel: string, includePending?: boolean): boolean;
|
||||
|
||||
subscribeSocket(socket: SCServerSocket, channel: string, callback?: (err?: Error) => void): void;
|
||||
unsubscribeSocket(socket: SCServerSocket, channel: string, callback?: () => void): void;
|
||||
|
||||
@@ -2,6 +2,8 @@ import { Client } from "sc-broker-cluster";
|
||||
import { SCServer, SCServerSocket } from "socketcluster-server";
|
||||
import WebSocket = require("ws");
|
||||
|
||||
// Client tests
|
||||
|
||||
const client = new Client({
|
||||
brokers: [],
|
||||
secretKey: "secretKey",
|
||||
@@ -12,18 +14,47 @@ const client = new Client({
|
||||
client.on("error", err => {});
|
||||
client.on("warning", err => {});
|
||||
|
||||
const exchange = client.exchange();
|
||||
|
||||
const scServer = new SCServer();
|
||||
client.setSCServer(scServer);
|
||||
|
||||
client.once("ready", () => {});
|
||||
|
||||
client.subscribe("channel");
|
||||
client.subscribe("channel", () => {});
|
||||
client.subscribe("channel", err => {});
|
||||
|
||||
client.unsubscribe("channel");
|
||||
client.unsubscribe("channel", () => {});
|
||||
|
||||
client.unsubscribeAll();
|
||||
client.unsubscribeAll(() => {});
|
||||
client.unsubscribeAll(err => {});
|
||||
client.unsubscribeAll((err, results) => {});
|
||||
|
||||
client.isSubscribed("channel");
|
||||
client.isSubscribed("channel", true);
|
||||
|
||||
const wsSocket = new WebSocket("address");
|
||||
const socket = new SCServerSocket("id", scServer, wsSocket);
|
||||
client.subscribeSocket(socket, "channelName");
|
||||
client.subscribeSocket(socket, "channelName", err => {});
|
||||
|
||||
client.unsubscribeSocket(socket, "channelName");
|
||||
client.unsubscribeSocket(socket, "channelName", () => {});
|
||||
|
||||
const data: any = {};
|
||||
exchange.publish("channelName", data, err => {});
|
||||
client.destroy();
|
||||
client.destroy(() => {});
|
||||
client.destroy(err => {});
|
||||
client.destroy((err, results) => {});
|
||||
|
||||
// SCExchange tests
|
||||
|
||||
const exchange = client.exchange();
|
||||
|
||||
exchange.send({}, null);
|
||||
exchange.send("dummy", 1, () => {});
|
||||
exchange.send("dummy", ["1", "2"], err => {});
|
||||
exchange.send(123, "*", (err, results) => {});
|
||||
|
||||
exchange.publish("channelName", {}, err => {});
|
||||
exchange.publish("channelName", {});
|
||||
|
||||
+19
@@ -29,6 +29,7 @@ declare class SCServerSocket extends Emitter {
|
||||
|
||||
constructor(id: string, server: SCServer, socket: WebSocket);
|
||||
|
||||
on(event: string, listener: SCServerSocket.AnyFunction): this;
|
||||
on(event: "error", listener: (error: Error) => void): this;
|
||||
on(event: "message" | "raw", listener: (message: WebSocket.Data) => void): this;
|
||||
on(event: "connectAbort" | "disconnect" | "close", listener: (code: number, data?: any) => void): this;
|
||||
@@ -36,6 +37,22 @@ declare class SCServerSocket extends Emitter {
|
||||
on(event: "authenticate", listener: (authToken?: SCServer.AuthToken) => void): this;
|
||||
on(event: "deauthenticate", listener: (oldToken?: SCServer.AuthToken) => void): this;
|
||||
|
||||
once(event: string, listener: SCServerSocket.AnyFunction): this;
|
||||
once(event: "error", listener: (error: Error) => void): this;
|
||||
once(event: "message" | "raw", listener: (message: WebSocket.Data) => void): this;
|
||||
once(event: "connectAbort" | "disconnect" | "close", listener: (code: number, data?: any) => void): this;
|
||||
once(event: "authStateChange", listener: (stateChangeData: SCServerSocket.StateChangeData) => void): this;
|
||||
once(event: "authenticate", listener: (authToken?: SCServer.AuthToken) => void): this;
|
||||
once(event: "deauthenticate", listener: (oldToken?: SCServer.AuthToken) => void): this;
|
||||
|
||||
off(event?: string, listener?: SCServerSocket.AnyFunction): this;
|
||||
off(event: "error", listener?: (error: Error) => void): this;
|
||||
off(event: "message" | "raw", listener?: (message: WebSocket.Data) => void): this;
|
||||
off(event: "connectAbort" | "disconnect" | "close", listener?: (code: number, data?: any) => void): this;
|
||||
off(event: "authStateChange", listener?: (stateChangeData: SCServerSocket.StateChangeData) => void): this;
|
||||
off(event: "authenticate", listener?: (authToken?: SCServer.AuthToken) => void): this;
|
||||
off(event: "deauthenticate", listener?: (oldToken?: SCServer.AuthToken) => void): this;
|
||||
|
||||
getState(): "connecting" | "open" | "closed";
|
||||
getBytesReceived(): number;
|
||||
|
||||
@@ -72,6 +89,8 @@ declare class SCServerSocket extends Emitter {
|
||||
export = SCServerSocket;
|
||||
|
||||
declare namespace SCServerSocket {
|
||||
type AnyFunction = (...args: any[]) => any;
|
||||
|
||||
type EmitCallback = (err: Error, eventObject: EventObject) => void;
|
||||
|
||||
interface EventObject {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
// Using with basic http(s) module (example)
|
||||
|
||||
import http = require("http");
|
||||
import WebSocket = require("ws");
|
||||
import * as socketClusterServer from "socketcluster-server";
|
||||
|
||||
let httpServer = http.createServer();
|
||||
@@ -37,3 +38,83 @@ scServer.on("connection", socket => {
|
||||
});
|
||||
|
||||
httpServer.listen(8000);
|
||||
|
||||
// Tests of the server-side socket
|
||||
|
||||
scServer.on("connection", socket => {
|
||||
// Check the standard events, with normal subscription,
|
||||
// one-time subscription and unsubscription.
|
||||
|
||||
const errorListener: (error: Error) => void = err => {
|
||||
console.log(err);
|
||||
};
|
||||
socket.on("error", errorListener);
|
||||
socket.once("error", errorListener);
|
||||
socket.off("error", errorListener);
|
||||
socket.off("error");
|
||||
|
||||
const messageListener: (message: WebSocket.Data) => void = message => {
|
||||
console.log(message);
|
||||
};
|
||||
socket.on("message", messageListener);
|
||||
socket.once("message", messageListener);
|
||||
socket.off("message", messageListener);
|
||||
socket.off("message");
|
||||
|
||||
socket.on("raw", messageListener);
|
||||
socket.once("raw", messageListener);
|
||||
socket.off("raw", messageListener);
|
||||
socket.off("raw");
|
||||
|
||||
const closeListener: (code: number, data?: any) => void = (code, data) => {
|
||||
console.log(`${code} ${data}`);
|
||||
};
|
||||
socket.on("connectAbort", closeListener);
|
||||
socket.once("connectAbort", closeListener);
|
||||
socket.off("connectAbort", closeListener);
|
||||
socket.off("connectAbort");
|
||||
|
||||
socket.on("disconnect", closeListener);
|
||||
socket.once("disconnect", closeListener);
|
||||
socket.off("disconnect", closeListener);
|
||||
socket.off("disconnect");
|
||||
|
||||
socket.on("close", closeListener);
|
||||
socket.once("close", closeListener);
|
||||
socket.off("close", closeListener);
|
||||
socket.off("close");
|
||||
|
||||
const authStateChangeListener: (stateChangeData: socketClusterServer.SCServerSocket.StateChangeData) => void = data => {
|
||||
console.log(data);
|
||||
};
|
||||
socket.on("authStateChange", authStateChangeListener);
|
||||
socket.once("authStateChange", authStateChangeListener);
|
||||
socket.off("authStateChange", authStateChangeListener);
|
||||
socket.off("authStateChange");
|
||||
|
||||
const authenticateListener: (authToken?: socketClusterServer.SCServer.AuthToken) => void = authToken => {
|
||||
console.log(authToken);
|
||||
};
|
||||
socket.on("authenticate", authenticateListener);
|
||||
socket.once("authenticate", authenticateListener);
|
||||
socket.off("authenticate", authenticateListener);
|
||||
socket.off("authenticate");
|
||||
|
||||
const deauthenticateListener: (oldToken?: socketClusterServer.SCServer.AuthToken) => void = oldToken => {
|
||||
console.log(oldToken);
|
||||
};
|
||||
socket.on("deauthenticate", deauthenticateListener);
|
||||
socket.once("deauthenticate", deauthenticateListener);
|
||||
socket.off("deauthenticate", deauthenticateListener);
|
||||
socket.off("deauthenticate");
|
||||
|
||||
// Check custom events, with normal subscription,
|
||||
// one-time subscription and unsubscription.
|
||||
const customEventListener: (data?: any) => void = data => {
|
||||
console.log(data);
|
||||
};
|
||||
socket.on("custom-event", customEventListener);
|
||||
socket.once("custom-event", customEventListener);
|
||||
socket.off("custom-event", customEventListener);
|
||||
socket.off("custom-event");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user