Javascript 通过WebSocket以JSON格式发送事件
我试图在服务器端使用jansson库形成JSON响应 下面是代码片段,用于构建对客户端请求的JSON响应(用js编写) 这在变量jsonStringResponse中形成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"
{"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');
});
});
});