我从Websockets开始,我遇到了问题。 我有一个sails.js应用程序,它使用套接字来更新客户端。
在客户端,它使用socket.get("/api/v1/actor...")
进行API调用以带来数据库的所有项目。当我看到Chrome控制台上的WebSocket流量时:
如您所见,已建立连接,并且已通过套接字正确完成API调用。 问题是,服务器没有答案,甚至没有错误。
如果我使用ajax进行相同的API调用,我会得到响应,但它无法使用WebSockets。 知道可能会产生这种行为吗?
编辑:我在这里添加了处理请求的代码here和发送请求的here,但问题是它永远不会执行此代码。我认为我们更接近找到原因,因为我们认为它与网络问题有关。我们发现有一个F5反向代理没有正确设置来处理websockets
答案 0 :(得分:0)
由于我已经看到了代码,因为我已经编辑了它,所以答案没有任何意义。我之所以回答是因为我无法对您的问题发表评论并要求您提供代码。
您的调用代码似乎是正确的,并且响应过程的服务器端应该由框架自动处理,您只需要在控制器方法中返回一些JSON。
我实例化了服务器的副本(只是更改了适配器以在本地运行它),服务器回复了Web套接字请求(尽管我只测试了路由' / index')。
通常当问题是由反向代理引起时,套接字只是拒绝连接,你甚至无法向服务器发送数据。属性" socket.socket.connected"返回true?
测试的最佳方法是使用socket.io客户端编写一个小节点应用程序,并在运行应用程序服务器的同一台机器上对其进行测试,然后排除网络问题。