【问题标题】:IISNode Socket.io NodeJS app (connect from c# using socketio4net)IISNode Socket.io NodeJS 应用程序(使用 socketio4net 从 c# 连接)
【发布时间】:2015-10-23 03:50:03
【问题描述】:

我有一个使用 iisnode 运行的简单 nodejs 服务器。

var app = require('http').createServer(handler);
var io = require('socket.io').listen(app);

io.configure(function () {
    io.set('transports', ['xhr-polling']);
    if (process.env.IISNODE_VERSION) {
        io.set('resource', '/nodejs/socket.io');
    }
});

function handler(req, res) {
    res.writeHead(200);
    res.end("Node JS is Running");
}

io.sockets.on('connection', function (socket) {
        console.log('a socket is connected');
    });

app.listen(process.env.PORT);

我想通过 c# 代码(不是 javascript)与这个套接字对话。我之前在没有 iisnode 的情况下运行 nodejs 服务器,并且以下代码有效。

Client socket = new Client("somelink");
            socket.Error += SocketError;
            socket.On("connect", (fn) =>
                {
                    socket.Emit("new_order", 301);
                });

            socket.Connect();

但现在我正在使用 iisnode 运行服务器,但无法使用相同的代码进行连接。我也必须更改我的 javascript 代码才能连接到服务器。

来自:=>

var socket = io.connect('somelink');

到:=>

 var socket = io.connect('somelink', {resource: 'nodejs/socket.io'});

我的问题是如何更改我的 c# 代码以连接到在 iisnode 上运行的 nodejs 服务器。

Client socket = new Client("somelink/nodejs/socket.io");

不起作用。 (握手错误)

【问题讨论】:

    标签: node.js iisnode socket.io socketio4net


    【解决方案1】:

    我不确定 Socket.io C# 客户端是如何工作的。但是,您可以在服务器端做的一件事是让 iisnode 托管版本的行为与自托管版本完全相同,即为应用程序创建一个专用网站,而不是将其托管在 IIS 虚拟目录中。这样,在 iisnode 中托管时,您无需自定义 resource 参数。

    【讨论】:

    • 我使用您的教程使 nodejs 应用程序在 IIS 虚拟目录中使用 iisnode 运行。我对此很陌生。我如何去创建一个专门的网站?任何提示将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多