Это может или не может быть связано с вашей проблемой.Я не очень много сделал с socket.io, но планировал сделать что-то очень похожее на то, что вы описываете.При чтении исходного кода для iisnode я обнаружил следующий код в cnodehttpmodule.cpp:
this->applicationManager->GetEventProvider()->Log(L"iisnode received a new http request", WINEVENT_LEVEL_INFO);
// reject websocket connections since iisnode does not support them
// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#page-17
PCSTR upgrade = pHttpContext->GetRequest()->GetHeader(HttpHeaderUpgrade, NULL);
ErrorIf(upgrade && 0 == strcmp("websocket", upgrade), ERROR_NOT_SUPPORTED);
Мне кажется, что если в заголовок запроса включен «websocket», он будет отклонен,Мне нужно прочитать протокол веб-сокета, чтобы лучше понять, что именно это означает.
Я буду первым, кто признает, что не слишком хорошо знаю, как веб-сокеты отличаются от длительных запросов.Однако, насколько я понимаю, socket.io будет работать на старых браузерах, которые не поддерживают веб-сокеты.
Я рекомендую вам установить транспорт только на xhr-polling или jsonp-polling.Это своего рода побеждает крутой фактор использования node.js, но может помочь вам решить вашу проблему.