improve README
This commit is contained in:
		
							
								
								
									
										31
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								README.md
									
									
									
									
									
								
							| @@ -23,25 +23,38 @@ Under the hood we use socket.io and shortid for managed data exchange. | ||||
| ### Serverside | ||||
| ```typescript | ||||
| import * as smartsocket from "smartsocket"; | ||||
| import * as q from q // q is a promise library | ||||
|  | ||||
| // The smartsocket listens on a port and can receive new socketconnection requests. | ||||
| let mySmartsocket = new smartsocket.Smartsocket({ | ||||
|     port: 3000 // the port smartsocket will listen on | ||||
| }); | ||||
|  | ||||
| // A socket role can be referenced by SocketFunctions. | ||||
| // All SocketRequests carry authentication data for a specific role. | ||||
| // SocketFunctions now which roles are allowed to execute them | ||||
| let mySocketRole = new smartsocket.SocketRole({ | ||||
|     name: "someRoleName", | ||||
|     passwordHash: "someHashedString" | ||||
| }); | ||||
|  | ||||
| // A SocketFunction executes a referenced function and passes in any data of the corresponding request. | ||||
| // The referenced function must return a promise and resolve with any data | ||||
| // Any request will be carries a unique identifier. If the referenced function's promise resolved any passed on argument will be returned to the requesting party  | ||||
| let testSocketFunction1 = new smartsocket.SocketFunction({ | ||||
|     funcName:"testSocketFunction1", | ||||
|     funcDef:(data) => { | ||||
|          | ||||
|     }, // the function to execute | ||||
|         console.log('testSocketFunction1 executed successfully!') | ||||
|     }, | ||||
|     allowedRoles:[mySocketRole] // all roles that have access to a specific function | ||||
| }); | ||||
|  | ||||
| mySmartsocket.clientCall("","restart",data,someTargetConnection) | ||||
| // A smartsocket exposes a .clientCall() that gets | ||||
| // 1. the name of the SocketFunctin on the client side | ||||
| // 2. the data to pass in | ||||
| // 3. And a target connection (there can be multiple connections at once) | ||||
| // any unique id association is done internally | ||||
| mySmartsocket.clientCall("restart",data,someTargetConnection) | ||||
|     .then((responseData) => { | ||||
|  | ||||
|     }); | ||||
| @@ -51,6 +64,8 @@ mySmartsocket.clientCall("","restart",data,someTargetConnection) | ||||
| ```typescript | ||||
| import * as smartsocket from "smartsocket"; | ||||
|  | ||||
| // A SmartsocketClient is different from a Smartsocket in that it doesn't expose any public address | ||||
| // Thus any new connections must be innitiated from the client | ||||
| let testSmartsocketClient = new smartsocket.SmartsocketClient({ | ||||
|     port: testConfig.port, | ||||
|     url: "http://localhost", | ||||
| @@ -58,24 +73,22 @@ let testSmartsocketClient = new smartsocket.SmartsocketClient({ | ||||
|     alias: "testClient1", | ||||
|     role: "testRole1" | ||||
| }); | ||||
|  | ||||
| // You can .connect() and .disconnect() from a Smartsocket | ||||
| testSmartsocketClient.connect() | ||||
|     .then(() => { | ||||
|         done(); | ||||
|     }); | ||||
|  | ||||
| // The client can also specify SocketFunctions. It can also specify Roles in case a client connects to multiple servers at once | ||||
| let testSocketFunction2 = new smartsocket.SocketFunction({ | ||||
|     funcName: "testSocketFunction2", | ||||
|     funcDef: (data) => {}, // the function to execute, has to return promise | ||||
|     allowedRoles:[] | ||||
| }); | ||||
|  | ||||
| let functionCalldata = { | ||||
|     funcName: "", | ||||
|     funcData: { | ||||
|         someKey:"someValue" | ||||
|     } | ||||
| } | ||||
|  | ||||
| // A SmartsocketClient can call functions on the serverside using .serverCall() analog to the Smartsocket's .clientCall method. | ||||
| mySmartsocketClient.serverCall("function",functionCallData) | ||||
|     .then((functionResponseData) => { // the functionResponseData comes from the server... awesome, right? | ||||
|          | ||||
|   | ||||
							
								
								
									
										10
									
								
								test/test.ts
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								test/test.ts
									
									
									
									
									
								
							| @@ -3,12 +3,12 @@ import should = require("should"); | ||||
| import socketIoClient = require("socket.io-client"); | ||||
| import smartsocket = require("../dist/index"); | ||||
| import q = require("q"); | ||||
| import nodehash = require("nodehash"); | ||||
| import nodehash = require("nodehash") | ||||
|  | ||||
| let testSmartsocket: smartsocket.Smartsocket; | ||||
| let testSmartsocketClient: smartsocket.SmartsocketClient; | ||||
| let testSocketRole1: smartsocket.SocketRole; | ||||
| let testSocketFunction1: smartsocket.SocketFunction; | ||||
| let testSmartsocket: smartsocket.Smartsocket | ||||
| let testSmartsocketClient: smartsocket.SmartsocketClient | ||||
| let testSocketRole1: smartsocket.SocketRole | ||||
| let testSocketFunction1: smartsocket.SocketFunction | ||||
|  | ||||
| let testConfig = { | ||||
|     port: 3000 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user