В моем очень простом nodejs серверном приложении. Я обслуживаю socket.io (v2.2.0) без express или http. Вот мой код.
const io = require('socket.io')();
io.on('connection', (client) => {
client.emit("welcome", "hello user");
});
io.listen(3000);
(через поиск в Google) Я обнаружил, что могу в своем веб-браузере перейти как к http://localhost: 3000 / socket.io /, так и к http://localhost: 3000 /socket.io/socket.io.js Откуда эти «конечные точки» определены? В моем коде ничего не говорится об этих «конечных точках», но они все же существуют. Это остатки от прошлых версий?
Когда я go - http://localhost: 3000 / socket.io / я получаю неверный запрос 400 с ответным сообщением JSON
{"code":0,"message":"Transport unknown"}
и когда я go до http://localhost: 3000 / socket.io / socket.io. js я получаю это
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.io=e():t.io=e()}(this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return t[n].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var r={};return e.m=t,e.c=r,e.p="",e(0)}([function(t,e,r){"use strict";function n(t,e){"object"===("undefined"==typeof t?"undefined":i(t))&&(e=t,t=void 0),e=e||{};var r,n=s(t),a=n.source,p=n.id,f=n.path,l=h[p]&&f in h[p].nsps,d=e.forceNew||e["force new connection"]||!1===e.multiplex||l;return d?(u("ignoring socket cache for %s",a),r=c(a,e)):(h[p]||(u("new io instance for %s",a),h[p]=c(a,e)),r=h[p]),n.query&&!e.query?e.query=n.query:e&&"object"===i(e.query)&&(e.query=o(e.query)),r.socket(n.path,e)}function o(t){var e=[];for(var r in t)t.hasOwnProperty(r)&&e.push(encodeURIComponent(r)+"="+encodeURIComponent(t[r]));return e.join("&")}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof
and so on