socket.io client连接TOMCAT7 WEBSocket应用总是报404错误.
发布于 12 年前 作者 esbmb 11440 次浏览 最后一次编辑是 8 年前

var url =‘ws://’+window.location.host + ‘/InstantMessaging/chatWebSocketServlet’;

   	 var socket = io.connect(url);	
   	 	
   	 	socket.on('connect', function () {
   	  		alert('connect');
   	 		// chat socket connected
   		});
   	 	
   	 	socket.on('error', function (e) {
   	  		alert('e:'+e);
   	 		// chat socket connected
   		});

在error对应的方法里总是报访问的资源不存在, The requested resource (/socket.io/1/) is not available. 但我实际访问的应该是ws://localhost:8080/InstantMessaging/charWebSocketServlet? socket.io 客户端版本为0.9.9-4

8 回复

楼主注意按照 gfm 的格式标记代码部分呀, 格式乱了 http://github.github.com/github-flavored-markdown/

链接 ws:// 网址的 websocket 应该不用 socket.io 吧… http://blog.bingo929.com/html5-websockets.html 还有 tomcat 是怎么弄的, 运行的 websocket 还是 socket.io?

tomcat是容器,支持websocket协议

我现在的web socket 服务端是采用tomcat7 实现的,socket.io可以实现浏览器的调用吗?

如果只是 websocket, 浏览器不需要引入 socket.io 去调用的啊, 上边我引的链接里 websocket 就是直接用 JS 进行连接的, 当然, 浏览器支持先要满足的

var socket = new WebSocket("ws://localhost:8000/socket/server/startDaemon.php");

socket.io 的话你看官网上的例子, http://socket.io/#how-to-use 都是服务器和浏览器代码对应写的, 缺一不可

@sumory 是 PHP 类似的技术吗, 而不是 Node 这样从命令启动的脚本?

@jiyinyiyong 呃,tomcat是web容器,标准的servlet实现,java web的常用web服务器。

@sumory Java 平台的名词看去都好抽象…

没有记错的话,socket.io只能连接socket.io的服务端

socket.io为了实现包括session等等功能,实际上并不是直接连接服务器的ws服务,而是先通过先一次请求(貌似只是ajax),获取一个带参数的ws地址,然后以这个地址去连接服务器 而你通过其他方式实现的ws服务端,并不存在那个提前请求的地址,必然会提示资源不存在

socket.io貌似有不少其他语言的实现,去github上搜索下吧

回到顶部