node.js WebSocket Server - PullRequest
       7

node.js WebSocket Server

4 голосов
/ 26 апреля 2011

В настоящее время я пытаюсь создать экземпляр push-сервера для новых действий в нашей базе данных.Конечно, вы найдете много информации по этой теме.

Я использую: http://static.brandedcode.com/nws-docs/#s6-p1

Со следующей реализацией клиента:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

        <script src="http://cdn.socket.io/stable/socket.io.js"></script>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            (function() {
                var webSocket = new io.Socket('ws//test', {
                    port: 8080
                });

                webSocket.connect();

                webSocket.on('connect',function() {
                    console.log('Client has connected to the server!');
                });

                webSocket.on('message',function(data) {
                    console.log('Received a message from the server!',data);
                });

                webSocket.on('disconnect',function() {
                    console.log('The client has disconnected!');
                });

                window.ws = webSocket;
            }());
        </script>
    </body>
</html>

Консольвозвращает:

Unexpected response code: 404
XMLHttpRequest cannot load http://ws//test:8080/socket.io/xhr-polling//1303822796984. Origin http://test is not allowed by Access-Control-Allow-Origin.
1303822796984GET http://ws//test:8080/socket.io/xhr-polling//1303822796984 undefined (undefined)

Я не знаю проблемы.

Спасибо за вашу помощь.

Привет!

Ответы [ 3 ]

6 голосов
/ 26 апреля 2011

Вы пытаетесь подключиться напрямую к серверу WebSocket с помощью Socket.io. Если вы используете только сервер WebSocket, а не сервер Socket.io, вы можете использовать обычный HTML5 API для подключения к веб-сокетам.

например:

var ws = new WebSocket("ws://domain:port");
ws.onopen = function(){}
ws.onmessage = function(m){}
ws.onclose = function(){}

Какой браузер вы используете? WebSockets в настоящее время поддерживается только Google Chrome. Тесты в других браузерах не пройдут.

1 голос
/ 26 апреля 2011

Вы, вероятно, хотели 'ws://push.xxx.binder.test' вместо 'ws//push.xxx.binder.test' (отсутствует двоеточие).

0 голосов
/ 26 апреля 2011

изменить

var webSocket = new io.Socket('ws//push.xxx.binder.test', {

на

var webSocket = new io.Socket('push.xxx.binder.test', {

Вам не нужно добавлять префикс для своего домена для socket.io (особенно без двоеточия перед косой чертой).Также var webSocket не подходит для именования - socket.io может использовать не только websockets (даже при ваших ошибках оно использует xhr-poliing)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...