【发布时间】:2017-02-26 19:41:36
【问题描述】:
我想将数据从 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 控制台上,我应该得到“收到 emu 消息”,我不应该吗?我没有收到那个
有人知道为什么吗?
在访问使用以下代码的网页时,我确实收到了“用户已连接”
<script>
var socket = io.connect('http://127.0.0.1:400');
socket.on('emu_msg', function(data) {
alert(data);
});
</script>
但是,当使用 csharp 发送消息时,我什么也没有收到,甚至用户连接消息也没有,我在这里遗漏了什么吗?而且我在使用 csharp 发送时也没有在网页上收到警报。
【问题讨论】:
-
我使用 csharp 中的 SocketIoClient.Net 库来发送数据
-
也许您想要一个带有 SignalR 的 ASP.NET MVC 应用程序?这样你就不需要学习 Node 和 socket.io
标签: javascript c# node.js sockets socket.io