javascript 예제 - WebSocket 주소가 매개 변수를 전달할 수 있습니까?





실시간 알림 (3)


ws://myserver.com/path?param=1 은 유효한 WebSocket URI입니다. 그러나 WebSocket 서버 응용 프로그램이 경로 및 쿼리 문자열에 액세스 할 수있는 방법은 사용중인 WebSocket 서버 프레임 워크에 따라 다릅니다.

Node.js einaros/ws 라이브러리를 사용하는 경우 webSocket 연결 객체에는 upgradeReq.url 쿼리 문자열과 함께 전체 경로가 있습니다.

예를 들면 다음과 같습니다.

wss.on('connection', function(ws) {
    console.log("url: ", ws.upgradeReq.url);
};

ws://myserver.com/path?param=1 연결할 때 url: /path?param=1 을 출력합니다.

ws://myserver.com/path?param=1 유효한 WebSocket 주소입니까?

http://myserver.com/path?param=1 주소 ( ws 아닌 http 임을주의)는 wscat 잘 작동하지만 브라우저에서 작동하지 않습니다.




최신 ws와 함께 사용하려면 연결 콜백에 req라는 또 다른 인수가 있습니다.

wss.on("connection", (ws, req) => {
   console.log(`Conn Url ${req.url}`);
});



를 찾아 비동기 파일에 대한 업로드 프로세스를 처리 : 여기에 https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

링크 샘플

<?php
if (isset($_FILES['myFile'])) {
    // Example:
    move_uploaded_file($_FILES['myFile']['tmp_name'], "uploads/" . $_FILES['myFile']['name']);
    exit;
}
?><!DOCTYPE html>
<html>
<head>
    <title>dnd binary upload</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
        function sendFile(file) {
            var uri = "/index.php";
            var xhr = new XMLHttpRequest();
            var fd = new FormData();

            xhr.open("POST", uri, true);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    // Handle response.
                    alert(xhr.responseText); // handle response.
                }
            };
            fd.append('myFile', file);
            // Initiate a multipart/form-data upload
            xhr.send(fd);
        }

        window.onload = function() {
            var dropzone = document.getElementById("dropzone");
            dropzone.ondragover = dropzone.ondragenter = function(event) {
                event.stopPropagation();
                event.preventDefault();
            }

            dropzone.ondrop = function(event) {
                event.stopPropagation();
                event.preventDefault();

                var filesArray = event.dataTransfer.files;
                for (var i=0; i<filesArray.length; i++) {
                    sendFile(filesArray[i]);
                }
            }
        }
    </script>
</head>
<body>
    <div>
        <div id="dropzone" style="margin:30px; width:500px; height:300px; border:1px dotted grey;">Drag & drop your file here...</div>
    </div>
</body>
</html>




javascript html5 node.js websocket