diff --git a/socket.io-redis/socket.io-redis-tests.ts b/socket.io-redis/socket.io-redis-tests.ts index 0ab6974c7a..2ce2be1bd6 100644 --- a/socket.io-redis/socket.io-redis-tests.ts +++ b/socket.io-redis/socket.io-redis-tests.ts @@ -1,20 +1,16 @@ -/// /// +/// /// import socketIO = require('socket.io'); import ioRedis = require('socket.io-redis'); +import redis = require('redis'); function testUsingWithNodeHTTPServer() { var io = socketIO(3000); - var adapter = ioRedis({ host: 'localhost', port: 6379 }); + var adapter = ioRedis("http://localhost"); io.adapter(adapter); -} -function testRestrictingYourselfToANamespace() { - var io = socketIO.listen(80); - var adapter = ioRedis({ host: 'localhost', port: 6379 }); - io.adapter(adapter); var chat = io .of('/chat') .on('connection', function (socket) { @@ -27,10 +23,24 @@ function testRestrictingYourselfToANamespace() { , '/chat': 'will get' }); }); - - var news = io - .of('/news') - .on('connection', function (socket) { - socket.emit('item', { news: 'item' }); - }); +} + +function testErrorHandling() { + var io = socketIO.listen(80); + var adapter = ioRedis("http://localhost"); + adapter.pubClient.on('error', function () { + console.log('pubClient error'); + }); + adapter.subClient.on('error', function() { + console.log('subClient error'); + }); + io.adapter(adapter); +} + +function testCustomClientAuth() { + var io = socketIO.listen(80); + var pub: redis.RedisClient = redis.createClient(8080, 'localhost', { auth_pass: 'pwd' }); + var sub: redis.RedisClient = redis.createClient(8081, 'localhost', { return_buffers: true, auth_pass: 'pwd' }); + var adapter = ioRedis({ pubClient: pub, subClient: sub }); + io.adapter(adapter); } diff --git a/socket.io-redis/socket.io-redis.d.ts b/socket.io-redis/socket.io-redis.d.ts index 658ea25999..b3eb44e5ec 100644 --- a/socket.io-redis/socket.io-redis.d.ts +++ b/socket.io-redis/socket.io-redis.d.ts @@ -3,19 +3,21 @@ // Definitions by: Philipp Holzer // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// /// /// declare module 'socket.io-redis' { - var io: SocketIORedisStatic; + var redis: SocketIORedisStatic; - export = io; + export = redis; } -import { RedisClient } from 'redis'; - interface SocketIORedisStatic { + /** + * Default Redis Adapter constructor + */ + (): SocketIORedis.RedisAdapter; + /** * Creates a new Redis Adapter * @param uri Is a string like localhost:6379 where your redis server is located. @@ -30,6 +32,10 @@ interface SocketIORedisStatic { (opts: SocketIORedis.SocketIORedisOptions): SocketIORedis.RedisAdapter; } +/** + * TODO: return Value for pubClient and subClient is RedisClient, but the im port throws errors because of "invalid module name in augmenatition" + * + */ declare namespace SocketIORedis { /** * Options to pass to the redis server when creating it @@ -57,12 +63,12 @@ declare namespace SocketIORedis { /** * The optional redis client to publish events on */ - pubClient?: RedisClient; + pubClient?: any; /** * The optional redis client to subscribe to events on */ - subClient?: RedisClient; + subClient?: any; } interface RedisAdapter extends SocketIO.Adapter { @@ -80,20 +86,20 @@ declare namespace SocketIORedis { /** * Optional, the redis client to publish events on */ - pubClient?: RedisClient; + pubClient?: any; /** * Optional, the redis client to subscribe to events on */ - subClient?: RedisClient; + subClient?: any; /** * Broadcasts a packet * @param packet The packet to broadcast * @param opts Any options to send along: - * - rooms: An optional list of rooms to broadcast to. If empty, the packet is broadcast to all sockets - * - except: A list of Socket IDs to exclude - * - flags: Any flags that we want to send along ('json', 'volatile', 'broadcast') + * - rooms: An optional list of rooms to broadcast to. If empty, the packet is broadcast to all sockets + * - except: A list of Socket IDs to exclude + * - flags: Any flags that we want to send along ('json', 'volatile', 'broadcast') * @param remote The optional flag, whether the packet came from another node */ broadcast: { @@ -107,8 +113,8 @@ declare namespace SocketIORedis { * @param callback An optional callback to call when the socket has been */ delAll: { - ( id: string ): void; - ( id: string, callback?: ( err?: any ) => void ): void; + (id: string): void; + (id: string, callback?: (err?: any) => void): void; }; } }