带有node.js和socket.io的Csharp

时间:2016-10-17 18:04:10

标签: javascript c# node.js sockets socket.io

我想将csharp中的数据发送到网页,而不必重新加载或任何烦人的东西,所以我决定使用Node.JS和socket.io

我对socket.io和node.js完全不熟悉,如果这不是它的工作方式,请纠正我...

1)我使用下面的代码从我的Csharp应用程序发送数据。

using Quobject.SocketIoClientDotNet.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Plus.HabboHotel.Roleplay.Extra.SocketIO
{
    public static class SocketIOManager
    {
        public static void SendMessage(string message)
        {
            var socket = IO.Socket("http://127.0.0.1:400");

            socket.On(Quobject.SocketIoClientDotNet.Client.Socket.EVENT_CONNECT, () =>
            {
                socket.Emit("emu_msg", @"Hello from PlusEMU");
                socket.Disconnect();
            });
        }
    }
}

2)Node.JS app.js选择它

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

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

io.on('emu_msg', function(socket){
  console.log('emu message received?');
});

http.listen(400, function(){
  console.log('listening on *:400');
});

现在在node.js控制台上,我应该收到“收到鸸message的消息”,不是吗?我没有收到那个
有人知道为什么吗?

访问使用以下代码的网页时,我确实收到了“用户已连接”

<script>
    var socket = io.connect('http://127.0.0.1:400');
    socket.on('emu_msg', function(data) {
        alert(data);
    });
    </script>

但是当用csharp发送消息时,我没有得到任何东西,甚至连用户都没有连接消息,我在这里遗漏了什么吗?当使用csharp发送时,我也没有在网页上收到警报。

1 个答案:

答案 0 :(得分:0)

在客户端上,您应该监听套接字上的消息。

io.on('connection', function(socket){
  console.log('a user connected');
  socket.on('emu_msg', function(msg){
    console.log('emu message received?');
  });
});

请参阅:here了解更多信息