javascript - C 中 Websocket 服务器的问题

标签 javascript c nginx websocket server

我需要使用 NGINX 作为 WebSocket 代理,我已经能够运行这个 tutorial没有任何问题。在本例中,一个简单的 WebSocket 应用程序是使用 ws 和 Node.js 完成的。但是,我需要用用 C 开发的应用程序替换 javascript (server.js) 中的代码。

为此,我尝试使用此 tutorial 中显示的最后一个示例,非常简单易懂。

但是,使用与 server.js 中相同的端口和配置,在运行编译的 C 代码时,似乎没有正确建立通信。在这种情况下,当我在客户端的终端运行 wscat 时,它似乎在等待什么,因为从未见过“已连接”这个词,但通信也没有完成(这就是为什么我说它似乎在等待什么; 在其他情况下,如果我尝试使用不同的端口,例如,通信将关闭并且出现一个句子“错误:意外的服务器响应”)。

另一方面,在服务器端,我可以看到有一个新连接。我怀疑服务器的回答没有到达客户端,但我不知道为什么。 Nginx 已正确配置,因为在 javascript 中完成的示例工作正常,并且我在 javascript 和 C 中使用相同的端口(在 server.js 中我有:'wss = new WebSocketServer({port: 8010});'并且在server.c: 'server.sin_port = htons( 8010 );' 从我的 Angular 来看它应该工作...)

我已经尝试过使用 C 语言编写的其他具有类似行为的示例。有谁知道这可能是什么原因?您是否为 WebSocket 服务器推荐其他特定的 C 代码?

最佳答案

您的问题是 websockets 和套接字之间存在非常明显的区别。套接字是更底层的网络接口(interface),而 websockets 在某种网络服务器上运行。

我建议为 C 使用 websocket 库。:) Here's我在快速谷歌搜索后找到的。可以找到所述库的文档 here

关于javascript - C 中 Websocket 服务器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48671628/

相关文章:

javascript - Jquery 幻灯片中的图片断断续续且显示不正确

c - 如何在所有原始整数大小都相同的系统上检测字节顺序?

ruby-on-rails - 如何限制 ruby​​ 对 Passenger/NGINX 的 CPU 使用?

c++ - 使用 fread() 以相反的顺序读取文件会导致内存泄漏?

java - tomcat jar java 仅适用于 8080

ruby-on-rails - 产生大量 Rack 应用程序的乘客

javascript - 如何在 React-Redux 登录页面中使用 firebase 重置密码

javascript - Javascript 中的字符串 <-> 数字转换

javascript - 登录我的应用程序后如何检测用户退出 Facebook?

C 网络编程错误,因为\n