首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Win Forms Node.js应用程序连接到远程Socket.IO服务器

无法从Win Forms Node.js应用程序连接到远程Socket.IO服务器
EN

Stack Overflow用户
提问于 2018-03-06 11:10:38
回答 1查看 1.1K关注 0票数 0

我创建了C#应用程序,该应用程序连接到Socket.IO服务器并发送/接收一些数据。我使用的是SocketIoClientDotNet,它在Socket.IO服务器位于Socket.IO本地主机(windows)上时工作。但是对于生产来说,Socket.IO服务器是在远程Debian服务器上,而我的应用程序不会连接到它。但是,我知道远程Socket.IO服务器正在工作,因为我还在使用Express模块来运行web服务器,该服务器也只连接到同一个Socket.IO不同的名称空间,并且连接得很好。

我使用这段代码连接到Socket.IO服务器

代码语言:javascript
复制
Socket socket = IO.Socket("http://someurl:9910/client");

在这两台服务器(本地和远程)上,Socket.IO版本为2.0.4。

编辑

在node.js中,代码是这样的,所以我知道什么时候有人被连接:

代码语言:javascript
复制
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server, {log: false, serveClient: true});

app.use('/', express.static(__dirname + '/html'));
server.listen(9910);

var ioClient = io.of('/client');
var ioManager = io.of('/manager');

ioClient.on('connection', function (socket) {
    debug("Client connected", "Client connected with ID \x1b[36m"+socket.client.id+"\x1b[0m");
}

ioManager.on('connection', function (socket) {
    debug("Manager connected", "Manager connected with ID \x1b[36m"+socket.client.id+"\x1b[0m");
}

还有一些与此无关的调试功能。

在C# Win Forms应用程序中,它看起来如下所示

代码语言:javascript
复制
using Newtonsoft.Json;
using Quobject.SocketIoClientDotNet.Client;

Socket socket;

private void frmMain_Load(object sender, EventArgs e)
        {
            socketConnect();
        }

private void socketConnect()
        {
            socket = IO.Socket("http://someurl:9910/client");
        }

        private void socketDisconnect()
        {
            socket.Disconnect();
        }

        private void initListeners()
        {
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Console.WriteLine("SOCKET CONNECTED");
            });
        }

因此,在我的本地服务器上,我可以看到调试消息:

06.03.2018。11:40:12:客户端连接;客户端连接ID SknUAgkyMg61QtfUAAAA

但是在远程服务器上什么都没有发生。此外,除了很少的调试消息之外,没有任何C#异常。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-06 21:34:28

经过长时间的调试,我发现这是一个问题,在socket.io包安装使用npm。

自从我一个月前在我的PC上安装了socket.io数据包以来,似乎有些socket.io依赖项(不确定哪一种依赖)被更新和破坏了。

解决方案是将整个socket.io文件夹从node_modules文件夹从我的PC复制到服务器。

在那之后,一切都按应有的方式运作。然而,许多人不会有这个问题,因为它只在C#到Node.JS socekt.io关系上披露,但很高兴知道。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49129407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档