我在实例化新客户端时遇到问题,如何实例化新客户端?

时间:2017-06-08 15:06:56

标签: node.js getstream-io

我的编译器返回错误,说我在实例化一个新客户端时应该传入一个键,它说我应该在实例化一个客户端时传入一个键。

我也收到错误,说明$ token未定义。

请查看以下代码

var stream = require('getstream');
// Instantiate a new client (server side)
client = stream.connect('q3nwu4pbz222', '(secret)', '25553');
// Instantiate a new client (client side)
client = stream.connect('q3nwu4pbz222', null, '25553'); 
// Find your API keys here https://getstream.io/dashboard/

// Instantiate a feed using feed class 'user' and user id '1'
var user1 = client.feed('user', '1', token); 

// Instantiate a feed for feed group 'user', user id '1' and a security token generated server side
user1 = client.feed('user', '1', $token);

1 个答案:

答案 0 :(得分:0)

JavaScript不会对变量使用$前缀,但您上面给出的示例代码也不构建任何类型的token变量。

您可以使用stream-js库建立两个客户端连接:

一个在服务器上运行的Node.js应用程序中发生,并且您将传递API密钥和API密钥。这为您提供了与Stream的读写连接以读取订阅源,还可以编写活动,执行关注关系,删除/更新活动以及取消关注其他订阅源等。

另一个客户端将在浏览器中发生(您的API密钥为null),但需要一个由后端/服务器应用程序生成的令牌,并允许通过websockets进行只读连接。实时通知。您的帐户对浏览器客户端可以对Stream进行的活动websocket连接数量有限制。

就为websocket连接生成令牌而言,您可以在服务器端使用这样的代码:

backendClient = stream.connect(<API_KEY>, <API_SECRET>, <APP_ID>)
readonlyToken = backendClient.feed('user', '1').getReadOnlyToken();

这会为user:1 Feed生成只读令牌,但无法执行写入功能,例如添加/编辑/更新活动数据或关注/取消关注等等。

然后,您可以将该令牌提供给您的前端浏览器/客户端。然后,从那里开始,前端客户端将使用以下代码建立与Stream的连接:

browserClient = stream.connect('q3nwu4pbz222', null, '25553'); 
user1 = browserClient.feed('user', '1', readonlyToken);
user1.get({limit:5}, callbackWhenFinished);