2017-02-19 22 views
0

У меня есть сервер uWebSockets, поскольку он выглядит намного более дружелюбным к производительности, чем серверы socket.io. Итак, у меня есть сервер и его подключение хорошо, и после некоторых проблем я получил клиентскую сторону index.html для подключения, но теперь я не могу передавать события на сервер со стороны клиента. Что я делаю не так?uWebSockets - нажимать события на сервер

var WebSocketServer = require('uws').Server, 
    express   = require('express'), 
    path   = require('path'), 
    app    = express(), 
    server   = require('http').createServer(), 
    createEngine = require('node-twig').createEngine; 

var wss = new WebSocketServer({server: server}); 

wss.on('connection', function (ws) { 

    ws.on('join', function (value) { 
     console.log('SOMEONE JUST JOINED'); 
    }); 

    ws.on('close', function() { 
     //console.log('stopping client interval'); 
     clearInterval(id); 
    }); 
}); 

server.on('request', app); 

server.listen(8080, function() { 
    console.log('Listening on http://localhost:8080'); 
}); 

index.html

<script> 
     var host = window.document.location.host.replace(/:.*/, ''); 
     var server = new WebSocket('ws://' + host + ':8080'); 
     server.onmessage = function (event) { 
     updateStats(JSON.parse(event.data)); 
     }; 

     server.onopen = function (event) { 
     server.send("Here's some text that the server is urgently awaiting!"); 
     server.send('join'); 
     }; 

     function something() { 
     console.log('WORKED'); 
     server.send('join'); 
     } 

    </script> 

ответ

0

Вы не имеете установки слушателя событий на стороне сервера, что делает получение и реагировать на сообщения. Как

ws.on('message', function (msg) { 
    // Do something with the message received from the client 
}); 
+0

привет там. У меня было ws.on ('join', function (value) { console.log («КТО-ТО ТОЛЬКО СОЕДИНЕН»); }); включен ('message') глобальный способ отправки данных на сервер? Я говорю из опыта в socket.io, где на сервере или клиенте i код (сервер или клиентская сторона) socket.on ('handler_name', cb) и (сервер или клиентская сторона) socket.emit (' handler_name ', данные); – TheMan68

+0

Большое спасибо за помощь – TheMan68

+0

Я думаю, что нет 'join', поскольку веб-сайты не представляют собой концепцию группы или сеанса, отличную от связи. uws напрямую предоставляет интерфейс websocket, а не API уровня высокого уровня, такой как socket.io. Поэтому они не сопоставимы напрямую и не будут использовать один и тот же API. Вы должны посмотреть, как работает API uws. Afaik также является тем же, что и API для модуля node.js 'ws'. – Matthias247