How to fix " Uncaught Reference Error: autobahn is not defined at HelloworldProxy.connect " error?
How to fix " Uncaught Reference Error: autobahn is not defined at HelloworldProxy.connect " error?
我正在尝试在客户端使用 js 和高速公路和 wamp c++ 实现 franca IDL server.I 完全是这个 .js 的新手,这是我第一次处理这个问题,但我已经在 franca 上工作过D-bus 所以我对 franca 有想法。任何帮助和建议都会对我有很大帮助。
在客户端我写了一个简单的helloworld代码
package example.hello
interface HelloWorld {
version {major 1 minor 0}
method sayHello {
in {
String name
}
out {
String message
}
}
}
并生成高速公路 js 绑定代码。现在我正在处理如下代码,但它显示以下错误:
“未捕获的 ReferenceError:未在 HelloworldProxy.connect 定义高速公路”“
hello.html代码:
<form>
<br/><br/><br/>
<label>Result: <output id="message" /></label><br/>
<br/><hr/><br/><br/>
<label>Status: <output id="connectionStatus"></output></label>
</form>
<p>This example uses WAMP communication to interact with a C++
server using CommonAPI.</p>
<br/><br/><br/><hr/>
<form>
<br/><br/><br/>
<label>Result: <output id="message" /></label><br/>
<br/><hr/><br/><br/>
<label>Status: <output id="connectionStatus"></output></label>
</form>
<script src="js/HelloworldProxy.js"></script>
<!--script src="js/HelloworldClientBlueprint.js"></script>-->
<script type="text/javascript">
console.log("I am alive!");
var proxy = new HelloworldProxy();
proxy.connect('ws://localhost:8081');
//var clientId = 66;
//var addr =
'local:example.hello.helloworld:v0_1:example.hello.helloworld';
proxy.onOpened = function() {
// your code goes here
connection.onopen = function(session, details) {
console.log("Connected", details);
setStatus("Connected to network.");
};
/**
* Async callback in response to a 'sayHello' call.
*
* @param cid the call id
* @param message
*/
proxy.replySayHello = function(cid, message) {
// your code goes here
};
/**
* API function provided by the proxy for calling method 'sayHello'.
* @param name
*/
proxy.sayHello(name);
};
proxy.onClosed = function(event) {
// your code goes here
connection.onclose = function(reason, details) {
console.log("Connection closed", reason, details);
setStatus("Disconnected.");
}
};
setStatus("Connecting to server...");
connection.open();
function setStatus(text) {
document.getElementById("connectionStatus").value = text;
}
</script>
</body>
</html>
generated autobahn binding code:
function HelloworldProxy() {
this.connection = null;
this.session = null;
this.address =
"local:example.hello.helloworld:v0_1:example.hello.helloworld"
this.callID = 0;
}
HelloworldProxy.prototype.getNextCallID = function() {
this.callID = this.callID + 1;
return this.callID;
};
// call this method to invoke sayHello on the server side
HelloworldProxy.prototype.sayHello = function(name) {
var cid = this.getNextCallID();
var _this = this;
this.session.call(this.address + '.sayHello', [cid, name]).then(
function (res) {
if (typeof(_this.replySayHello) === "function") {
_this.replySayHello(cid, res);
}
},
function (err) {
console.log("Call failed, error message: ", err);
_this.replyError();
}
);
return cid;
};
HelloworldProxy.prototype.connect = function(address) {
var _this = this;
_this.connection = new autobahn.Connection({
url: address,
realm: 'realm1'}
);
_this.connection.onopen = function(session, details) {
console.log("Connected", details);
if (typeof(_this.onOpened) === "function") {
_this.onOpened();
}
_this.session = session;
// subscribing to all broadcasts
}
_this.connection.onclose = function(reason, details) {
console.log("Connection closed", reason, details);
if (typeof(_this.onClosed) === "function") {
_this.onClosed(reason);
}
}
setStatus("Connecting to server...");
_this.connection.open();
};
我需要将客户端连接到服务器并从服务器获取响应消息。服务器运行良好 我已经在 RESTClint.sh.
的帮助下对其进行了测试
我解决了上述问题并得到了解决方案。我实际上在高速公路上丢失了 autobahn.min.js 文件(头文件)。连接已经 achieved.It 花了半天时间才到达这个阶段,但这是一次很好的体验。
现在的问题是我不知道如何调用 javascript 中的方法 sayhello 以从服务器获取响应。
即:在 javascript 部分我有
/**
* Async callback in response to a 'sayHello' call.
*
* @param cid the call id
* @param message
*/
proxy.replySayHello = function(cid, message) {
// your code goes here
};
/**
* API function provided by the proxy for calling method 'sayHello'.
* @param name
*/
proxy.sayHello(name);
我不知道如何调用这些函数任何建议都会对我有很大帮助。提前致谢。
嗨,它起作用了我只是在js中添加了显示功能,因此得到了输出。
类似于下面的代码:
document.getElementById("i1").onclick = function(){
console.log("sending " + Indicator.R_ind);
proxy.Myindicator(Indicator.name);
proxy.replySayHello = function(cid, message) {
document.getElementById("message").value = message;
document.getElementById("d1").innerHTML = message;
};
我正在尝试在客户端使用 js 和高速公路和 wamp c++ 实现 franca IDL server.I 完全是这个 .js 的新手,这是我第一次处理这个问题,但我已经在 franca 上工作过D-bus 所以我对 franca 有想法。任何帮助和建议都会对我有很大帮助。
在客户端我写了一个简单的helloworld代码
package example.hello
interface HelloWorld {
version {major 1 minor 0}
method sayHello {
in {
String name
}
out {
String message
}
}
}
并生成高速公路 js 绑定代码。现在我正在处理如下代码,但它显示以下错误: “未捕获的 ReferenceError:未在 HelloworldProxy.connect 定义高速公路”“
hello.html代码:
<form>
<br/><br/><br/>
<label>Result: <output id="message" /></label><br/>
<br/><hr/><br/><br/>
<label>Status: <output id="connectionStatus"></output></label>
</form>
<p>This example uses WAMP communication to interact with a C++
server using CommonAPI.</p>
<br/><br/><br/><hr/>
<form>
<br/><br/><br/>
<label>Result: <output id="message" /></label><br/>
<br/><hr/><br/><br/>
<label>Status: <output id="connectionStatus"></output></label>
</form>
<script src="js/HelloworldProxy.js"></script>
<!--script src="js/HelloworldClientBlueprint.js"></script>-->
<script type="text/javascript">
console.log("I am alive!");
var proxy = new HelloworldProxy();
proxy.connect('ws://localhost:8081');
//var clientId = 66;
//var addr =
'local:example.hello.helloworld:v0_1:example.hello.helloworld';
proxy.onOpened = function() {
// your code goes here
connection.onopen = function(session, details) {
console.log("Connected", details);
setStatus("Connected to network.");
};
/**
* Async callback in response to a 'sayHello' call.
*
* @param cid the call id
* @param message
*/
proxy.replySayHello = function(cid, message) {
// your code goes here
};
/**
* API function provided by the proxy for calling method 'sayHello'.
* @param name
*/
proxy.sayHello(name);
};
proxy.onClosed = function(event) {
// your code goes here
connection.onclose = function(reason, details) {
console.log("Connection closed", reason, details);
setStatus("Disconnected.");
}
};
setStatus("Connecting to server...");
connection.open();
function setStatus(text) {
document.getElementById("connectionStatus").value = text;
}
</script>
</body>
</html>
generated autobahn binding code:
function HelloworldProxy() {
this.connection = null;
this.session = null;
this.address =
"local:example.hello.helloworld:v0_1:example.hello.helloworld"
this.callID = 0;
}
HelloworldProxy.prototype.getNextCallID = function() {
this.callID = this.callID + 1;
return this.callID;
};
// call this method to invoke sayHello on the server side
HelloworldProxy.prototype.sayHello = function(name) {
var cid = this.getNextCallID();
var _this = this;
this.session.call(this.address + '.sayHello', [cid, name]).then(
function (res) {
if (typeof(_this.replySayHello) === "function") {
_this.replySayHello(cid, res);
}
},
function (err) {
console.log("Call failed, error message: ", err);
_this.replyError();
}
);
return cid;
};
HelloworldProxy.prototype.connect = function(address) {
var _this = this;
_this.connection = new autobahn.Connection({
url: address,
realm: 'realm1'}
);
_this.connection.onopen = function(session, details) {
console.log("Connected", details);
if (typeof(_this.onOpened) === "function") {
_this.onOpened();
}
_this.session = session;
// subscribing to all broadcasts
}
_this.connection.onclose = function(reason, details) {
console.log("Connection closed", reason, details);
if (typeof(_this.onClosed) === "function") {
_this.onClosed(reason);
}
}
setStatus("Connecting to server...");
_this.connection.open();
};
我需要将客户端连接到服务器并从服务器获取响应消息。服务器运行良好 我已经在 RESTClint.sh.
的帮助下对其进行了测试我解决了上述问题并得到了解决方案。我实际上在高速公路上丢失了 autobahn.min.js 文件(头文件)。连接已经 achieved.It 花了半天时间才到达这个阶段,但这是一次很好的体验。
现在的问题是我不知道如何调用 javascript 中的方法 sayhello 以从服务器获取响应。 即:在 javascript 部分我有
/**
* Async callback in response to a 'sayHello' call.
*
* @param cid the call id
* @param message
*/
proxy.replySayHello = function(cid, message) {
// your code goes here
};
/**
* API function provided by the proxy for calling method 'sayHello'.
* @param name
*/
proxy.sayHello(name);
我不知道如何调用这些函数任何建议都会对我有很大帮助。提前致谢。
嗨,它起作用了我只是在js中添加了显示功能,因此得到了输出。 类似于下面的代码:
document.getElementById("i1").onclick = function(){
console.log("sending " + Indicator.R_ind);
proxy.Myindicator(Indicator.name);
proxy.replySayHello = function(cid, message) {
document.getElementById("message").value = message;
document.getElementById("d1").innerHTML = message;
};