我正在使用 Stomp.js 框架从 Websocket 发送和接收数据。所以我必须做一个类来帮助Stomp消息发送者的实现。
然后我做了一个类如下:
WebSocket.js
function WebSocket()
{
var host = { protocol: "ws://", url: "localhost", port: ":61623/" };
var hostLocation = hostToString(host);
var stompVersion = "v11.stomp";
var username = "admin";
var pass = "password";
this.sendMessage = function (paramMsg){
return wsConnection( hostLocation, stompVersion, paramMsg );
}
// make connection with ActiveMQ (WebSocket)
function wsConnection( hostLocation, stompVersion, paramMsg ) {
var ws = Stomp.client( hostLocation, stompVersion );
var subscribeTopic = "/topic/event";
ws.connect( username, pass,
function() {
ws.subscribe(subscribeTopic,
function( data ) {
return resultChannel(data);
},
{ priority: 9 }
);
ws.send(subscribeTopic, { priority: 9, text: paramMsg }, paramMsg);
}
);
}
// map the url connection
function hostToString(object) {
return object.protocol + object.url + object.port;
}
// format the result
function resultChannel(msg) {
console.log(msg.body);
return msg.body;
}
}
在课堂内,我尝试使用以下方法与 ActiveMQ 建立连接:
var ws = Stomp.client( hostLocation, stompVersion );
Stomp 对象存在于类中,但连接不起作用。
在 HTML 中,我以这种方式实现:
<script type="text/javascript">
function sendMessage(){
var paramMsg = document.getElementById("mensagem").value;
var ws = new WebSocket();
ws.prototype = Stomp;
var ul = document.getElementById("textos");
ul.innerHTML += "<li>" + ws.sendMessage(paramMsg) + "</li>";
}
</script>
有人知道我做错了什么吗?
附言。我导入了两个 JavaScript 文件。
谢谢!