0

我正在使用 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 文件。

谢谢!

4

0 回答 0