加载页面时JavaScript不向WebSocket发送信息

时间:2014-06-05 15:58:35

标签: javascript php websocket

我在加载页面时无法发送会话cookie的信息。

以下是函数的执行方式

<body onload="example();">

这是自己的功能

function example() {
  websocket.send("<?php print($_SESSION['example']) ?>")
}

我也尝试过这种方式,但仍然无效。

function example() {
  websocket.send("Test")
}

我也尝试在单击按钮时调用此函数并且它确实有效。

我想也许与websocket的连接速度不够快,并且在建立连接之前调用了example();函数。请告诉我如何才能完成这项工作。

2 个答案:

答案 0 :(得分:1)

这是一个如何从onload文档事件连接到WebSocket的完整示例:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>WebSocket Sample</title>
    <script type="text/javascript">
    function example()
    {
        // open websocket
        var socket = new WebSocket('ws://localhost:80');

        socket.onopen = function() {
            console.log("onopen!");
            // Web Socket is connected. send an initial random message.
            socket.send("Hello!");
        };
    }
    </script>
</head>
<body onload="example();">
    <h1>Title</h1>
</body>
</html>

答案 1 :(得分:1)

我发现在执行函数之后连接是稳定的,所以我只是做setTimeout,即使这不是一个好的做法,它对于项目来说已经足够了。这是我的解决方案的简短版本。

<!DOCTYPE HTML>
<HTML>
    <HEAD>
        <script language="javascript" type="text/javascript">
           function example() {
               function sendUser() {
                setTimeout(
                   function() {
                   websocket.send("Wroked!")
                   }, 1000);
                }
           }
        </script>
    </HEAD>
    <BODY onload="example();">
    </BODY>
</HTML>