我的编译器返回错误,说我在实例化一个新客户端时应该传入一个键,它说我应该在实例化一个客户端时传入一个键。
我也收到错误,说明$ 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);
答案 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);