首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查WebSocket服务器是否运行(在本地主机上)

检查WebSocket服务器是否运行(在本地主机上)
EN

Stack Overflow用户
提问于 2017-02-08 12:17:18
回答 4查看 45.7K关注 0票数 7

当我尝试初始化到本地主机上运行的服务器的websocket连接时,

代码语言:javascript
运行
复制
var webSocket = new WebSocket("ws://localhost:8025/myContextRoot");

在javascript中,但是服务器尚未完成启动,我得到了错误

SCRIPT12029: WebSocket错误:网络错误12029,无法与服务器建立连接

我怎么才能阻止这一切?例如,如何检查服务器是否已经启动,或者如何强制WebSocket客户端等待服务器?

EN

Stack Overflow用户

发布于 2018-03-21 18:04:21

被接受的答案是完全正确的。我只想用承诺把它再扩展一点。

代码语言:javascript
运行
复制
var wsFactory = { tryCount: 3,
                  connect : function(url){
                              var ctx = this,
                                  ws  = new WebSocket(url);

                              return new Promise(function(v,x){
                                                   ws.onerror   = e => { console.log(`WS connection attempt ${4-ctx.tryCount} -> Unsuccessful`);
                                                                         e.target.readyState === 3 && --ctx.tryCount;
                                                                         if (ctx.tryCount > 0) setTimeout(() => v(ctx.connect(url)), 1000);
                                                                         else x(new Error("3 unsuccessfull connection attempts"));
                                                                       };
                                                   ws.onopen    = e => { console.log(`WS connection Status: ${e.target.readyState}`);
                                                                         v(ws);
                                                                       };
                                                   ws.onmessage = m => console.log(m.data);
                                                 });
                            }
                };

wsFactory.connect("ws://localhost:8025/myContextRoot")
         .then(ws => ws.send("Hey..! This is my first socket message"))
         .catch(console.log);
票数 6
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42112919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档