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;
};
}
}