Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 401使用node.js的混合中继连接_Javascript_Node.js_Azure - Fatal编程技术网

Javascript 401使用node.js的混合中继连接

Javascript 401使用node.js的混合中继连接,javascript,node.js,azure,Javascript,Node.js,Azure,我刚刚运行了微软的示例代码,用node.js测试混合中继连接 运行: node listener.js 产生以下错误: error错误:意外的服务器响应(401) 这是我的代码(node listener.js) 我试过你的代码,效果很好。关键是我将keyrule设置为等于共享访问策略的名称,并将key设置为等于共享访问策略的主键 const WebSocket = require('hyco-ws'); const ns = "hcrelay.servicebus.windows.net";

我刚刚运行了微软的示例代码,用node.js测试混合中继连接

运行:

node listener.js

产生以下错误:

error错误:意外的服务器响应(401)

这是我的代码(node listener.js)


我试过你的代码,效果很好。关键是我将
keyrule
设置为等于共享访问策略的名称,并将
key
设置为等于共享访问策略的主键

const WebSocket = require('hyco-ws');

const ns = "hcrelay.servicebus.windows.net";  // Relay namespace
const path = "hc1";                           // Hybrid connection name
const keyrule = "RootManageSharedAccessKey";  // Policy name
const key = "sjSqVUo...";                     // Primary key

var wss = WebSocket.createRelayedServer(
 {
     server : WebSocket.createRelayListenUri(ns, path),
     token: WebSocket.createRelayToken('http://' + ns, keyrule,key)
 }, 
 function (ws) {
     console.log('connection accepted');
     ws.onmessage = function (event) {
         console.log(event.data);
     };
     ws.on('close', function () {
         console.log('connection closed');
     });       
});

console.log('listening');

wss.on('error', function(err) {
 console.log('error' + err);
});


您是否使用SAS规则的有效密钥?401(未经授权)状态代码表示该请求尚未应用,因为它缺少目标资源的有效身份验证凭据。创建该请求时,我输入了自己的密钥/值,这些密钥/值与您在上面代码中看到的大致相同。。。对这些值应该是什么有要求吗?谢谢你的回复,我一定把keyrule和key的值搞乱了。。。我会亲自尝试并确认。。。谢谢你的回复…我以前在做这个的时候一定过得很糟糕。。。它工作得很好!谢谢
const WebSocket = require('hyco-ws');

const ns = "hcrelay.servicebus.windows.net";  // Relay namespace
const path = "hc1";                           // Hybrid connection name
const keyrule = "RootManageSharedAccessKey";  // Policy name
const key = "sjSqVUo...";                     // Primary key

var wss = WebSocket.createRelayedServer(
 {
     server : WebSocket.createRelayListenUri(ns, path),
     token: WebSocket.createRelayToken('http://' + ns, keyrule,key)
 }, 
 function (ws) {
     console.log('connection accepted');
     ws.onmessage = function (event) {
         console.log(event.data);
     };
     ws.on('close', function () {
         console.log('connection closed');
     });       
});

console.log('listening');

wss.on('error', function(err) {
 console.log('error' + err);
});