Javascript 通过WebSocket以JSON格式发送事件

Javascript 通过WebSocket以JSON格式发送事件,javascript,json,websocket,jasmine,dom-events,Javascript,Json,Websocket,Jasmine,Dom Events,我试图在服务器端使用jansson库形成JSON响应 下面是代码片段,用于构建对客户端请求的JSON响应(用js编写) 这在变量jsonStringResponse中形成 {"response":{"method":"Speak","reqID":"30","speakID":"30","numSegments":"1"

我试图在服务器端使用jansson库形成JSON响应 下面是代码片段,用于构建对客户端请求的JSON响应(用js编写)

这在变量jsonStringResponse中形成

{"response":{"method":"Speak","reqID":"30","speakID":"30","numSegments":"1"}}
现在在客户端实现中,这就是它的验证方式,我无法通过此验证

// test the Speak method
it('Speak', function(done) {
    var id = "123";
    var method = "Speak";

    WsTestBase.send({
        "request":
        {
            "method": method,
            "reqID": id,
            "parameters":
            {
                "text" : ttsText
            }
        }
    });

 WsTestBase.validate({
        "method": method,
        "reqID":id,
        "speakID":id,
        "numSegments":1
    },[
        { eventName : 'SpeechEnd', speakID : id }
    ], done);

});

请告诉我如何发送响应正文中缺少的预期的
eventName

我不完全确定您想做什么,但WebSocket是异步的

以下是我使用WebSocket进行测试的方法:


这个链接很有帮助。非常感谢。你刚才说对了。我正在实现项目的服务器端。客户机,正如您所提到的,进行websocket连接,并向我发送您所看到的请求。我以json格式解析并帧回响应。现在我的问题是,发送预期的eventName。我怎么寄?函数validate()中的[]括号中需要它。哦,你想知道如何实现服务器端吗?是的。我想从服务器发送响应。n是的,我正在实现服务器端
// test the Speak method
it('Speak', function(done) {
    var id = "123";
    var method = "Speak";

    WsTestBase.send({
        "request":
        {
            "method": method,
            "reqID": id,
            "parameters":
            {
                "text" : ttsText
            }
        }
    });

 WsTestBase.validate({
        "method": method,
        "reqID":id,
        "speakID":id,
        "numSegments":1
    },[
        { eventName : 'SpeechEnd', speakID : id }
    ], done);

});
var ws = new WebSocket("wss://localhost:8006/", "text");

describe("Connects: ", function () {
    var connected = false;
    it("Connected", function () {

        runs(function () {
            ws.onopen = function (event) {
                connected = true;
            };
        });

        waitsFor(function () {
            return connected;
        }, "Error", 1000);

        runs(function () {
            expect(connected).toBe(true);
        });
    });

});

describe("Small Strings: ", function () {
    var result = '';

    it("Must reverse the 'Hi' string", function () {

        ws.onmessage = function (event) {
            result = event.data;
        };

        runs(function () {
            ws.send("Hi");
        });

        waitsFor(function () {
            return result == 'iH';
        }, "Error", 1000);

        runs(function () {
            expect(result).toBe('iH');
        });
    });
});