默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
web端如何向C++编写的TCP服务器程序建立单向长连接
阅读(22993) | 评论(2 收藏 淘帖
服务器是C++编写的,传输协议采用的是TCP。

我用websocket  socket.io  nodeji-websocket都请求过,但是都失败了,无法正确与服务器建立长连接。
我的理解是,websocket等都是要双工通信的,如果服务器端没有相对应的程序接收和返回信息,那么就无法与服务器建立长连接。
但是,我的问题是,
web(html5)端有没有能像安卓端的netty框架那样的程序,只需要TCP服务器的真实IP地址及端口号,就可以与服务器建立长连接(不需要在服务器端放置任何的接收返回代码),然后进行通信。
--------------------------------------------------------------------------------------------------
我是个小白,在即时通信这块,对websocket这些协议也是新手,请哪位知道的大侠,指点迷津,万分感谢。已经困扰了一周了。
--------------------------------------------------------------------------------------------------
下面是我使用的代码:
<!DOCTYPE html>
<html>
<head>
<title>websocket demo</title>
<script type="text/javascript">
  var socket;
  var host = "ws://***.***.***.***:****/";//声明host注意:是ws协议
  
    socket = new WebSocket(host);//新创建一个socket对象
    console.log('WebSocket - status '+socket.readyState);//将连接的状态信息显示在log
    socket.onopen    = function(msg){ 
      socket.send('I am the client and I\'m listening!'); 
      console.log("Welcome - status "+this.readyState); 

    socket.onmessage = function(msg){ console.log("Received: "+msg.data); };//监听当接收信息时触发匿名函数
    socket.onclose   = function(msg){ console.log("Disconnected - status "+this.readyState); };//关闭连接
    socket.onerror   = function(msg){ console.log(msg); };//关闭连接

      socket.close()      
    };//监听打开连接
  
</script>
</head>

<body>
</script>
</body>
</html>

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
评论 2
可以看出你对Web端即时通讯技术的了解几乎没有。

在WebSocket协议出现之前(也就是HTML5标准正式确定前),Web端几乎没有办法实现富客户端程序(比如android中用java代码写的网络程序、ios中用OC写的网络程序、C++桌面程序等等)这样的与服务器基于UDP或TCP协议的全双工双向实时通信,直到WebSocket出现才解决了这个问题。

而你Web端即使可以使用WebSocket,那也必须是只能跟支持WebSocket协议的服务端进行通信(WebSocket的本质就是TCP协议)。

建议你详细了解一下Web端即时通讯技术后再来决定要怎么去用技术实现,论坛上的Web端即时通讯技术专辑里收录的文章足以让你了解这一切:http://www.52im.net/forum.php?mod=collection&action=view&ctid=15&fromop=all,建议详读之。

非常感谢指点,我看看。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部