te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Connect to standard socket using WebSocket - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Connect to standard socket using WebSocket - Stack Overflow

programmeradmin3浏览0评论

I have a client interface to a hardware device that municates over a standard TCP socket. Is it possible to connect to this using WebSocket in a browser like Chrome? Here's the code I am using to connect:

var ws = new WebSocket("ws://127.0.0.1:13854");
ws.onopen = function() ...

The client just fails so far on the first line. Is the problem that WebSockets use their own protocol which a standard local socket would be unfamiliar with? I have tried specifying other protocols ('http://...' and 'tcp://...') but this has not worked.

I have a client interface to a hardware device that municates over a standard TCP socket. Is it possible to connect to this using WebSocket in a browser like Chrome? Here's the code I am using to connect:

var ws = new WebSocket("ws://127.0.0.1:13854");
ws.onopen = function() ...

The client just fails so far on the first line. Is the problem that WebSockets use their own protocol which a standard local socket would be unfamiliar with? I have tried specifying other protocols ('http://...' and 'tcp://...') but this has not worked.

Share Improve this question asked Mar 29, 2013 at 14:15 RonanODRonanOD 8851 gold badge10 silver badges19 bronze badges 1
  • 2 WebSocket is a special protocol that uses HTTP for handshake and use the underlaying socket to do the real munication afterwards. So, you cannot connect to a regular tcp socket with websocket because they are two different things. – Licson Commented Mar 29, 2013 at 14:20
Add a ment  | 

2 Answers 2

Reset to default 11

As thejh already explained, WebSockets don't transmit data as you provide it, but add framing and masking to the data stream. Thus it is not possible to use websockets to municate with applications which don't implement the WebSocket protocol.

But there is a workaround: A Websockify server can be used as a proxy to bridge between a websocket client and a non-websocket server. The client doesn't municate with the application directly, but with a websockify server instead. Websockify unpacks the Websocket data stream and relays it to the server. The response from the server is then packed into WebSocket frames and sent to the client.

Web Sockets use a special protocol. For example, any websocket connection starts as an HTTP connection and is changed to a websocket connection after both parties have agreed to change to the websocket protocol over HTTP. You can't talk to arbitrary TCP servers using websockets, sorry. If you want to do something like that, you'll probably have to use flash or a Java applet.

发布评论

评论列表(0)

  1. 暂无评论