使用JavaScript WebSocket如何将event.data
传递出onMessage
函数?
var eventData = EventRequest("text");
..... codes .....
EventRequest = function (text)
{
var socket = new WebSocket ('ws://localhost:8080/');
websocket.onopen = function(evt) { onOpen(evt); };
websocket.onmessage = function(evt) { onMessage(evt); };
function onOpen (evt)
{
socket.send("text");
}
function onMessage (evt)
{
alert (evt.data);
return evt.data;
}
};
我尝试了不同的方式将evt.data传递出去,但我无法做到。我可以看到正确的evt.data
数据。我无法将数据传递出onMessage
函数。
我试过
function wcConnection (){
this.dataInput = '';
}
在onMessage
内部,我添加了
function onMessage (evt)
{
alert (evt.data);
this.dataInput = evt.data;
}
任何帮助都将不胜感激。
答案 0 :(得分:3)
如果你的服务器是python tornado
def on_message(self, message):
t = json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
self.write_message(t)
在您的客户端,要检索邮件,您可以
ws.onmessage = function (evt) {
console.log(JSON.parse(event.data));
}
你应该在控制台中看到json
答案 1 :(得分:2)
为什么要将值返回到websocket.onmessage函数?这是你获得该值的函数。 如果要将值传递给另一个函数,只需将事件对象传递给该函数,然后使用" evt.data"访问它。
websocket.onmessage = function(evt) { responseData(evt); };
function responseData(evt) {
/* Here is your data, Do you what you want! */
console.log(JSON.parse(evt.data));
}