Как работать с websocket если сервер на IIS10?
Добрый день. Начал изучать websoctet. Написал простой код, который возвращает ошибку 200.
Подскажите что я не так понимаю? Вот код js
var socket = new WebSocket("ws://localhost/test.php"); //возвращает ошибку 200
Запускаю страницу с адреса http://localhost/index.html Получается он находит файлик php и не знает что с ним делать. В IIS10 websocket установлен. Каких то изменяющихся настроек в Диспетчере служб IIS найдено не было, кроме как enable websocket, где можно поставить включить или выключить. В самом php файлике просто написано: echo 'test'; Подскажите почему так не работает, и где я ошибся? |
Вебсокет(WS) не работает как REST Api,
те при обращении к test.php напрямую, скрипт просто вернет 'test', а надо что бы этот скрипт работал как daemon вот пример для php без iis - http://socketo.me/docs/hello-world, вряд-ли получится завести websocket на php внутри iis ), как варик, это будет asp.net... ну или этот пример, http://socketo.me/docs/hello-world, запустить внутри твоего test.php, но тогда надо будет руками пройти один раз по этому пути, чтобы он завелся, и потом, вероятно, можно подключится через html, но это полный бред... ) итого: для iis это asp.net, и/или если это консольное приложение можно посмотреть WCF, или например для C# я успешно юзаю https://github.com/sta/websocket-sharp ) или использовать nodejs yarn init yarn add ws wss.js
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
запустить: node wss.js wss.html
<script>
var ws = new WebSocket(`ws://localhost:8080`);
ws.onopen = () => {
ws.onmessage = (e) => console.log(e)
}
</script>
|
SuperZen,
Спасибо за подробный ответ :thanks: |
| Часовой пояс GMT +3, время: 13:48. |