javascript WebSocket在消息上event.data

bqjvbblv  于 2022-11-11  发布在  Java
关注(0)|答案(3)|浏览(152)

使用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;
}
};

我尝试了不同的方法将www.example.com传递evt.data出去,但是我都无法做到。我可以看到正确的evt.data数据。我只是无法将数据从onMessage函数中传递出去。
我试过了

function wcConnection (){
   this.dataInput = '';
}

onMessage函数中,我添加了

function onMessage (evt)
{
   alert (evt.data);
   this.dataInput = evt.data;
}

任何帮助都将不胜感激。

bmp9r5qi

bmp9r5qi1#

如果您的服务器是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

rqcrx0a6

rqcrx0a62#

你为什么要返回值给WebSocket.onmessage函数?这是你得到那个值的函数。如果你想把这个值传递给另一个函数,只要把事件对象传递给那个函数,然后用“www.example.com“来访问它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));
}
jjhzyzn0

jjhzyzn03#

一旦你使用new创建了一个WebSocket的示例,就能够得到消息事件OnMessage .如果你使用react then,

useEffect(() => {
    WebSocketScale.onmessage = (event: any) => {
        value.push(JSON.parse(event.data));
}, []);

相关问题