Tag: c#

通过套接字从c#发送数据到节点的socket.io服务器

我目前正在尝试用我的C#客户端提供的数据来提供socket.io服务器。 但是我不确定如何在服务器上接收消息。 我的服务器代码: const io = require('socket.io')(9000); io.on('connection', (socket) => { console.log('Connected'); } 首先,我不知道我要听哪个事件,但是我无法使用以下客户端(使用Websocket-sharp)将数据发送到我的服务器: private void init() { // start socket connection using (var ws = new WebSocket("ws://localhost:9000/socket.io/?EIO=2&transport=websocket")) { ws.OnMessage += (sender, e) => API.consoleOutput("Message: " + e.Data); ws.OnError += (sender, e) => API.consoleOutput("Error: " + e.Message); ws.Connect(); ws.Send("server"); } } 连接工作,但我怎么接收服务器的消息? 发送不会引发错误,因此我认为它确实有效。

WebRTC mediaserver的解决scheme

我想咨询什么是可以满足我的需求的媒体stream服务器(WebRTC)的最佳解决scheme。 我需要的: 轻松pipe理50多个连接。 能够切换谁在听谁,谁在跟谁讲话。 客户端应该只有一个WebRTC连接。 哪个去服务器。 服务器再次,控制他正在听到什么,他正在与谁交谈.. 这基本上是我的需求。 我更喜欢C#和NodeJS等语言。 我看着kurento,这似乎有一个不好的文档,它使用我不熟悉的Java。 任何替代scheme,build议? 谢谢。

NodeJS:本机插件与外部二进制文件的性能

我正在编写一个NodeJS服务器,除了存储其他数据之外,还需要对用户密码进行哈希处理,然后将其存储在数据库中。 由于创build安全哈希的math密集过程,以及需要完成的大量哈希处理,我select在C中对哈希处理进行编码。 我的问题是这样的:通过执行child_process.exec编码的哈希处理,而不是创buildNodeJS的本地插件,我添加了多less开销? IE每次需要对一段数据进行散列处理时,我将需要以该段数据作为参数调用child_process.exec。

npm ref找不到绑定文件错误

我在使用电子的nodejs项目中使用了包ref。 但问题是当我在我的JS代码中使用ref时,它会抛出一个错误,它找不到绑定文件。 这是错误 错误:找不到绑定文件。 尝试: →C:… \ EMVModule.asar \ node_modules \ ref \ build \ binding.node→C:… \ EMVModule.asar \ node_modules \ ref \ build \ Debug \ binding.node→C:… \ EMVModule .asar \ node_modules \ ref \ build \ Release \ binding.node→C:… \ EMVModule.asar \ node_modules \ ref \ out \ Debug \ binding.node→C:… \ EMVModule.asar […]

我如何在C#中实现socketIO与NodeJS一起工作?

我一直在尝试在C#上实现Emit Broadcast和On方法。 我知道有一个名为SocketIO4DotNet的包,我不希望使用它,因为它已被弃用。 我很了解如何去做。 我试图阅读该软件包的代码,但它使用依赖过于依赖,这是无济于事。 目前我有以下代码: public class SocketIO { protected string host; protected int port; TcpClient client; public SocketIO(string host, int port) { this.host = host; this.port = port; } public bool connect() { if (isConnected()) { return false; } try { client = new TcpClient(); client.Connect(host, port); return true; } catch (Exception ex) […]

Nodejsvalidation来自.net的jwt令牌失败

我通过这个C#代码(使用System.IdentityModel.Tokens.Jwt)从.net创build令牌: var keybytes = Convert.FromBase64String("MYCUSTOMCODELONGMOD4NEEDBEZE"); var signingCredentials = new SigningCredentials( new InMemorySymmetricSecurityKey(keybytes), SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.Sha256Digest); var nbf = DateTime.UtcNow.AddDays(-100); var exp = DateTime.UtcNow.AddDays(100); var payload = new JwtPayload(null, "", new List<Claim>(), nbf, exp); var user = new Dictionary<string, object>(); user.Add("userId", "1"); payload.Add("user", user); payload.Add("success", true); var jwtToken = new JwtSecurityToken(new JwtHeader(signingCredentials), payload); var jwtTokenHandler = new […]

Xamarin Android客户端发布JSON到Node JS Web服务

我使用Xamarin Android( MvvmCross )从使用C#编写的Android应用程序发送JSON数据时遇到了问题。 Android应用程序中的函数可以毫不例外地运行, 但是,我的Web服务(使用Express写在Node JS中)似乎没有检测到其端点上的发布请求。 请注意,使用get (从Web服务发送数据到Android应用程序)的其他terminal正在运行完美。 以下是我的数据发布到我的Web服务的function public async Task<int> insertSales(IEnumerable<Models.SalesTable> newsales) { /*ServerDatabaseApi.insertSalesEndpoint = "http://" + ipAddress + ":" + port + "/insertsales";*/ WebRequest request = WebRequest.CreateHttp(ServerDatabaseApi.insertSalesEndpoint); request.Method = "POST"; request.ContentType = "application/json"; try { using (var streamwriter = new StreamWriter(await request.GetRequestStreamAsync())) { string json = JsonConvert.SerializeObject(newsales, Formatting.Indented); streamwriter.Write(json); streamwriter.Flush(); } […]

多次同时调用uv_write有时不起作用

我正在testing使用libuv开发的简单服务器体系结构。 每当服务器从客户端收到一些东西时,它就会通过'\ r'分割主体,并向所有观察者,每条消息进行广播。 然后,我用来testing的观察者使用相同的原始消息(回显服务器)调用server-> write()方法。 问题是,我每次运行程序,它随机工作或没有。 当它不起作用时,错误信息是: Assertion failed: (req->write_index < req->nbufs), function uv__write, file src/unix/stream.c, line 869. Abort trap: 6 完整的代码在这里: https : //github.com/ghostec/film 大部分的代码在这个文件中: https : //github.com/ghostec/film/blob/master/server/server.cpp 编辑:显然这是与uv_queue_work内的调用uv_write的事实有关。 由于它们都写入相同的处理程序,如果它们在libuv循环中调用时出现故障,则会发生不良情况。 但是,我不确定我的评估是否正确。

从节点收听ConsoleTraceListener日志

我已经写了示例应用程序打印日志到ConsoleTraceListener 。 根据MSDN , ConsoleTraceListener应该redirect到标准输出。 我从节点spawn这个进程,并试图听stdout ,它无法获取信息。 任何想法如何解决这个问题? 我想将TraceListener传送到节点 C#: Trace.Listeners.Add(new ConsoleTraceListener(true)); Trace.AutoFlush = true; Console.WriteLine("This comes out"); Trace.WriteLine("oops"); Trace.TraceInformation("Getting lost"); Thread.Sleep(5000); Console.WriteLine("Stopping comes out"); 节点: let proc = ps.spawn("sample.exe"); proc.stdout.on('data', (c) => { console.log(c.toString()); }); proc.stderr.on('err', (c) => { console.log(c.toString()); });

在.net中将二进制32位IEEE-754浮点数转换为Double

我试图parsing一个二进制STereoLithography文件(.stl) .net(C#),其中有32位浮点数(IEEE-754)在其中。 我需要parsing这些数字,然后将这些数字存储在PovRay脚本中的string表示forms中,这是一个纯文本文件。 我试着在nodejs中使用readFloatLE函数,它给了我一个数字(双精度值)。 在.net中,我只findBitconverter.ToSingle函数读取二进制32位,并给我一个比nodejsparsingless一个精度(7)的浮点数。 nodejsparsing提供了一个povray脚本nubmers像:-14.203535079956055虽然.net只给我:-14.2035351 那么,如何将二进制32位parsing为.net中的Double来获得更高的精度呢? [编辑] 使用taffer中的anwser:将转换后的float转换为double,然后使用“往返”格式化程序进行string表示。 与nodejs输出相比,仍然有小的舍入差异,但是那些在十三到十六位小数。